01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * 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-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19: package org.netbeans.modules.xslt.model;
20:
21: import org.netbeans.modules.xml.xam.dom.DocumentComponent;
22:
23: /**
24: * @author ads
25: *
26: */
27: public interface XslComponent extends DocumentComponent<XslComponent> {
28:
29: String XSL_NAMESPACE = "http://www.w3.org/1999/XSL/Transform";
30:
31: /**
32: * @return the xslt model this component belongs to.
33: */
34: XslModel getModel();
35:
36: /**
37: * @return the type of the component in terms of the xslt model interfaces.
38: */
39: Class<? extends XslComponent> getComponentType();
40:
41: /**
42: * @return true if the elements are from the same xsl model.
43: */
44: boolean fromSameModel(XslComponent other);
45:
46: /**
47: * @param visitor apply <code>visitor</code> to this component
48: */
49: void accept(XslVisitor visitor);
50:
51: /**
52: * Creates a reference to the given target Xsl component.
53: * @param referenced the xsl component being referenced.
54: * @param type actual type of the target
55: * @return the reference.
56: */
57: <T extends ReferenceableXslComponent> XslReference<T> createReferenceTo(
58: T referenced, Class<T> type);
59: }
|