001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.uml.core.support.umlutils;
043:
044: import org.dom4j.Node;
045:
046: import org.netbeans.modules.uml.core.metamodel.core.foundation.IElement;
047: import org.netbeans.modules.uml.core.reverseengineering.reframework.parsingframework.ILanguage;
048:
049: /**
050: * <p>Title: </p>
051: * <p>Description: </p>
052: * <p>Copyright: Copyright (c) 2003</p>
053: * <p>Company: </p>
054: * @author not attributable
055: * @version 1.0
056: */
057:
058: public interface IDataFormatter {
059:
060: // Perform an XSLT transform on the passed in element.
061: //HRESULT FormatElement([in] IElement* element, [out, retval] BSTR* format);
062: public String formatElement(IElement elem);
063:
064: // Perform an XSLT transform on the passed in element using the passed in script name.
065: //HRESULT FormatElement2([in] IElement* element, [in] BSTR scriptName, [out, retval] BSTR* format );
066: public String formatElement(IElement elem, String scriptName);
067:
068: // Formats the data elements data. The property elements used to format the elements data and the formatted string is returned.
069: //HRESULT FormatElement3([in]IElement* element, [out]IPropertyElement** propElement, [out, retval] BSTR* format);
070: public String formatElement(IElement elem, IPropertyElement propElem);
071:
072: // Associates an element type with an XSL stylesheet.
073: //HRESULT AddScript([in] BSTR elementType, [in] BSTR xslFileName);
074: public void addScript(String elementType, String xslFileName);
075:
076: // Get the on file script name for the passed in key
077: //HRESULT GetScriptFromMap([in] BSTR key, [out, retval] BSTR* scriptName );
078: public String getScriptFromMap(String key);
079:
080: // Remove the on file script name for the passed in key
081: //HRESULT RemoveScriptFromMap([in] BSTR key );
082: public void removeScriptFromMap(String key);
083:
084: // Clears the on file script names from the map
085: //HRESULT ClearMap();
086: public void clearMap();
087:
088: // Are alias names displayed?
089: //HRESULT isAlias([out,retval] VARIANT_BOOL* bAlias);
090: public boolean isAliasOn();
091:
092: // Are alias names displayed?
093: //HRESULT isAlias([in] VARIANT_BOOL bAlias);
094: public void setAlias(boolean alias);
095:
096: // Perform an XSLT transform on the passed in node.
097: //HRESULT FormatNode([in] IXMLDOMNode* pNode, [out, retval] BSTR* format);
098: public String formatNode(Node node);
099:
100: // Perform an XSLT transform on the passed in node using the passed in script name.
101: //HRESULT FormatNode2([in] IXMLDOMNode* pNode, [in] BSTR scriptName, [out, retval] BSTR* format );
102: public String formatNode(Node node, String scriptName);
103:
104: public String formatNode(org.w3c.dom.Node node, String scriptName);
105:
106: // Adds a COM object to all known processors that can be referenced within XSLT scripts.
107: //HRESULT AddObject([in] BSTR namespaceURI, [in] IDispatch* pDisp);
108: public void addObject(String namespaceURI, Object obj);
109:
110: // Adds a COM object to a specific processor that can be referenced within XSLT scripts.
111: //HRESULT AddObject2([in] BSTR scriptName, [in] BSTR namespaceURI, [in] IDispatch* pDisp);
112: public void addObject(String scriptName, String namespaceURI,
113: Object obj);
114:
115: // Converts the property element's data into localized and stringified format, if appropriate.
116: //HRESULT ProcessEnumeration( [in,out] IPropertyElement* pData);
117: public IPropertyElement processEnumeration(IPropertyElement pData);
118:
119: // Returns a property element for a modelelement, using the current language.
120: //HRESULT GetPropertyElement( [in] IElement* pElement, [out,retval] IPropertyElement** pVal);
121: public IPropertyElement getPropertyElement(IElement elem);
122:
123: // Returns the PropertyElementManager, using the current language."), hidden]
124: //HRESULT GetElementManager( [out,retval] IPropertyElementManager** pVal);
125: public IPropertyElementManager getElementManager();
126:
127: public String getFormatStringFile(Object pDisp);
128:
129: public ILanguage getActiveLanguage(Object pDisp);
130:
131: public IPropertyElement getPropertyElementByContext(
132: IElement pElement, String context);
133: }
|