001: /*
002: * The contents of this file are subject to the terms of the Common Development
003: * and Distribution License (the License). You may not use this file except in
004: * compliance with the License.
005: *
006: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
007: * or http://www.netbeans.org/cddl.txt.
008: *
009: * When distributing Covered Code, include this CDDL Header Notice in each file
010: * and include the License file at http://www.netbeans.org/cddl.txt.
011: * If applicable, add the following below the CDDL Header, with the fields
012: * enclosed by brackets [] replaced by your own identifying information:
013: * "Portions Copyrighted [year] [name of copyright owner]"
014: *
015: * The Original Software is NetBeans. The Initial Developer of the Original
016: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
017: * Microsystems, Inc. All Rights Reserved.
018: */
019:
020: package org.netbeans.modules.bpel.model.api;
021:
022: import java.util.List;
023: import org.netbeans.modules.bpel.model.api.events.VetoException;
024:
025: /**
026: * This type is extended by other component types to allow elements and
027: * attributes from other namespaces to be added.
028: * <p>
029: * Java class for tExtensibleElements complex type.
030: * <p>
031: * The following schema fragment specifies the expected content contained within
032: * this class.
033: *
034: * <pre>
035: * <xsd:complexType name="tExtensibleElements">
036: * <xsd:annotation>
037: * <xsd:documentation>
038: * This type is extended by other component types to allow elements and attributes from
039: * other namespaces to be added at the modeled places.
040: * </xsd:documentation>
041: * </xsd:annotation>
042: * <xsd:sequence>
043: * <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
044: * <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
045: * </xsd:sequence>
046: * <xsd:anyAttribute namespace="##other" processContents="lax"/>
047: * </xsd:complexType>
048: * </pre>
049: */
050: public interface ExtensibleElements extends BpelContainer {
051:
052: /**
053: * @return Documentation cildren.
054: */
055: Documentation[] getDocumentations();
056:
057: /**
058: * Returns <code>i</code>-th Documentation element.
059: *
060: * @param i Index in Documentation children array.
061: * @return <code>i</code>-th Documentation child.
062: */
063: Documentation getDocumentation(int i);
064:
065: /**
066: * Removes <code>i</code>-th Documentation child.
067: *
068: * @param i Index in children array.
069: */
070: void removeDocumentation(int i);
071:
072: /**
073: * Set new <code>documentation</code> element to the <code>i</code>-th
074: * position.
075: *
076: * @param documentation New Documentation child
077: * @param i Index in children array.
078: */
079: void setDocumentation(Documentation documentation, int i);
080:
081: /**
082: * Insert new <code>documentation</code> element to the <code>i</code>
083: * position.
084: *
085: * @param documentation
086: * New Documentation child
087: * @param i Index in children array.
088: */
089: void insertDocumentation(Documentation documentation, int i);
090:
091: /**
092: * Set new Documentation array .
093: *
094: * @param documentations New array.
095: */
096: void setDocumentations(Documentation[] documentations);
097:
098: /**
099: * Adds new <code>documentation</code> in the end of children list.
100: *
101: * @param documentation New documentation element.
102: */
103: void addDocumentation(Documentation documentation);
104:
105: /**
106: * @return size of children Documentation elements.
107: */
108: int sizeOfDocumentations();
109:
110: /**
111: *
112: */
113: String getDocumentation();
114:
115: /**
116: *
117: */
118: void setDocumentation(String documentation) throws VetoException;
119:
120: /**
121: *
122: */
123: void removeDocumentation() throws VetoException;
124:
125: /**
126: * Add extension entity to the end of children list with specified
127: * type.
128: * @param <T> Class of entity.
129: * @param type extension entity class.
130: * @param entity New child extension entity.
131: */
132: <T extends ExtensionEntity> void addExtensionEntity(Class<T> type,
133: T entity);
134:
135: /**
136: * @return All extension children.
137: */
138: List<ExtensionEntity> getExtensionChildren();
139:
140: }
|