1 /* 2 * The contents of this file are subject to the terms of the Common Development 3 * and Distribution License (the License). You may not use this file except in 4 * compliance with the License. 5 * 6 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html 7 * or http://www.netbeans.org/cddl.txt. 8 * 9 * When distributing Covered Code, include this CDDL Header Notice in each file 10 * and include the License file at http://www.netbeans.org/cddl.txt. 11 * If applicable, add the following below the CDDL Header, with the fields 12 * enclosed by brackets [] replaced by your own identifying information: 13 * "Portions Copyrighted [year] [name of copyright owner]" 14 * 15 * The Original Software is NetBeans. The Initial Developer of the Original 16 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun 17 * Microsystems, Inc. All Rights Reserved. 18 */ 19 20 package org.netbeans.modules.refactoring.spi.ui; 21 22 /** 23 * Register your own TreeElementFactoryImplementation into META-INF/services 24 * if you want to build your own RefactoringPreview tree. 25 * 26 * For instance Java Refactoring understand Java - specific objects e.g. 27 * Projects, Groups, Methods etc. 28 * 29 * <pre> 30 * public TreeElement getTreeElement(Object o) { 31 * . 32 * . 33 * if (o instanceof SourceGroup) { 34 * return new SourceGroupTreeElement((SourceGroup)o); 35 * } else if (o instanceof SomethingFromJava) { 36 * return new SomethingFromJavaTreeElement((SomethingFromJava) o); 37 * } 38 * </pre> 39 * 40 * Important note. It is expected from mathematical point of view, that this method 41 * is function, or even better bijection. 42 * @author Jan Becicka 43 */ 44 public interface TreeElementFactoryImplementation { 45 /** 46 * returns TreeElement for given object if possible. Otherwise returns null. 47 * @param o 48 * @return 49 */ 50 public TreeElement getTreeElement(Object o); 51 52 /** 53 * clears internal structures 54 */ 55 public void cleanUp(); 56 } 57