| |
| <% |
| /** |
| * Copyright (c) 2005-2007 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM - Initial API and implementation |
| */ |
| %> |
| <%GenPackage genPackage = (GenPackage)argument; GenModel genModel = genPackage.getGenModel();%> |
| <% |
| String _System = genModel.getImportedName("java.lang.System"); |
| String _String = genModel.getImportedName("java.lang.String"); |
| String _RuntimeException = genModel.getImportedName("java.lang.RuntimeException"); |
| String _File = genModel.getImportedName("java.io.File"); |
| String _Iterator = null; |
| if (!genModel.useGenerics()) { |
| _Iterator = genModel.getImportedName("java.util.Iterator"); |
| } |
| String _Diagnostic = genModel.getImportedName("org.eclipse.emf.common.util.Diagnostic"); |
| String _URI = genModel.getImportedName("org.eclipse.emf.common.util.URI"); |
| String _EObject = genModel.getImportedName("org.eclipse.emf.ecore.EObject"); |
| String _Diagnostician = genModel.getImportedName("org.eclipse.emf.ecore.util.Diagnostician"); |
| String _Resource = genModel.getImportedName("org.eclipse.emf.ecore.resource.Resource"); |
| String _ResourceSet = genModel.getImportedName("org.eclipse.emf.ecore.resource.ResourceSet"); |
| String _ResourceSetImpl = genModel.getImportedName("org.eclipse.emf.ecore.resource.impl.ResourceSetImpl"); |
| %> |
| <%@ egf:patternCall patternId="platform:/plugin/org.eclipse.egf.emf.pattern.base/egf/EMF_Pattern_Base.fcore#LogicalName=org.eclipse.egf.emf.pattern.base.HeaderJava" args="parameter:argument"%> |
| package <%=genPackage.getTestsPackageName()%>; |
| |
| <%genModel.markImportLocation(stringBuffer);%> |
| |
| /** |
| * <!-- begin-user-doc --> |
| * A sample utility for the '<em><b><%=genPackage.getPackageName()%></b></em>' package. |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public class <%=genPackage.getExampleClassName()%> |
| { |
| <%if (genModel.hasCopyrightField()) {%> |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @generated |
| */ |
| public static final <%=_String%> copyright = <%=genModel.getCopyrightFieldLiteral()%>;<%=genModel.getNonNLS()%> |
| |
| <%}%> |
| /** |
| * <!-- begin-user-doc --> |
| * Load all the argument file paths or URIs as instances of the model. |
| * <!-- end-user-doc --> |
| * @param args the file paths or URIs. |
| * @generated |
| */ |
| public static void main(String[] args) |
| { |
| // Create a resource set to hold the resources. |
| // |
| <%=_ResourceSet%> resourceSet = new <%=_ResourceSetImpl%>(); |
| |
| <%if (genPackage.isContentType()) {%> |
| // Register the appropriate resource factory to handle the content type. |
| // |
| resourceSet.getResourceFactoryRegistry().getContentTypeToFactoryMap().put |
| (<%=genPackage.getImportedPackageInterfaceName()%>.eCONTENT_TYPE, |
| new <%=genModel.getImportedName(genPackage.getQualifiedEffectiveResourceFactoryClassName())%>()); |
| |
| // Register the appropriate content handler for all file extensions and any element from the package's namespace. |
| // |
| resourceSet.getURIConverter().getContentHandlers().add |
| (new <%=genModel.getImportedName("org.eclipse.emf.ecore.xmi.impl.RootXMLContentHandlerImpl")%>(<%=genPackage.getImportedPackageInterfaceName()%>.eCONTENT_TYPE, null, null, <%if (genPackage.hasTargetNamespace()) {%><%=genPackage.getImportedPackageInterfaceName()%>.eNS_URI<%} else {%>(<%=_String%>)null<%}%>, null)); |
| <%} else {%> |
| // Register the appropriate resource factory to handle all file extensions. |
| // |
| resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put |
| (Resource.Factory.Registry.DEFAULT_EXTENSION, |
| new <%=genModel.getImportedName(genPackage.getQualifiedEffectiveResourceFactoryClassName())%>()); |
| <%}%> |
| |
| // Register the package to ensure it is available during loading. |
| // |
| resourceSet.getPackageRegistry().put |
| (<%=genPackage.getImportedPackageInterfaceName()%>.eNS_URI, |
| <%=genPackage.getImportedPackageInterfaceName()%>.eINSTANCE); |
| |
| // If there are no arguments, emit an appropriate usage message. |
| // |
| if (args.length == 0) |
| { |
| <%if (genPackage.getRootClass() != null) { GenClass rootClass = genPackage.getRootClass();%> |
| System.out.println("Enter a list of file paths or URIs that have content like this:");<%=genModel.getNonNLS()%> |
| try |
| { |
| <%if (genPackage.isContentType()) {%> |
| <%=_Resource%> resource = resourceSet.createResource(<%=_URI%>.createURI("http:///My.<%=genPackage.getFileExtension()%>"), <%=genPackage.getImportedPackageInterfaceName()%>.eCONTENT_TYPE);<%=genModel.getNonNLS()%> |
| <%} else {%> |
| <%=_Resource%> resource = resourceSet.createResource(<%=_URI%>.createURI("http:///My.<%=genPackage.getFileExtension()%>"));<%=genModel.getNonNLS()%> |
| <%}%> |
| <%if (genPackage.getRootFeature() != null) { GenFeature rootFeature = genPackage.getRootFeature(); GenClass documentRoot = rootFeature.getGenClass();%> |
| <%=documentRoot.getImportedInterfaceName()%> documentRoot = <%=genPackage.getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=documentRoot.getName()%>(); |
| <%=rootClass.getImportedInterfaceName()%> root = <%=rootClass.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=rootClass.getName()%>(); |
| <%if (documentRoot.isDynamic()) {%> |
| documentRoot.eSet(<%=rootFeature.getQualifiedFeatureAccessor()%>, root); |
| <%} else {%> |
| documentRoot.set<%=rootFeature.getCapName()%>(root); |
| <%}%> |
| resource.getContents().add(<%if (!documentRoot.isEObjectExtension()){%>(<%=_EObject%>)<%}%>documentRoot); |
| <%} else {%> |
| <%=rootClass.getImportedInterfaceName()%><%=rootClass.getInterfaceWildTypeArguments()%> root = <%=rootClass.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=rootClass.getName()%>(); |
| resource.getContents().add(<%if (!rootClass.isEObjectExtension()){%>(<%=_EObject%>)<%}%>root); |
| <%}%> |
| resource.save(<%=_System%>.out, null); |
| } |
| catch (<%=genModel.getImportedName("java.io.IOException")%> exception) |
| { |
| exception.printStackTrace(); |
| } |
| <%} else {%> |
| System.out.println("Enter a list of file paths or URIs"); |
| <%}%> |
| } |
| else |
| { |
| // Iterate over all the arguments. |
| // |
| for (int i = 0; i < args.length; ++i) |
| { |
| // Construct the URI for the instance file. |
| // The argument is treated as a file path only if it denotes an existing file. |
| // Otherwise, it's directly treated as a URL. |
| // |
| <%=_File%> file = new <%=_File%>(args[i]); |
| <%=_URI%> uri = file.isFile() ? <%=_URI%>.createFileURI(file.getAbsolutePath()): URI.createURI(args[i]); |
| |
| try |
| { |
| // Demand load resource for this file. |
| // |
| <%=_Resource%> resource = resourceSet.getResource(uri, true); |
| System.out.println("Loaded " + uri);<%=genModel.getNonNLS()%> |
| |
| // Validate the contents of the loaded resource. |
| // |
| <%if (genModel.useGenerics()) {%> |
| for (<%=_EObject%> eObject : resource.getContents()) |
| <%} else {%> |
| for (<%=_Iterator%> j = resource.getContents().iterator(); j.hasNext(); ) |
| <%}%> |
| { |
| <%if (!genModel.useGenerics()) {%> |
| <%=_EObject%> eObject = (<%=_EObject%>)j.next(); |
| <%}%> |
| <%=_Diagnostic%> diagnostic = <%=_Diagnostician%>.INSTANCE.validate(eObject); |
| if (diagnostic.getSeverity() != Diagnostic.OK) |
| { |
| printDiagnostic(diagnostic, "");<%=genModel.getNonNLS()%> |
| } |
| } |
| } |
| catch (<%=_RuntimeException%> exception) |
| { |
| System.out.println("Problem loading " + uri);<%=genModel.getNonNLS()%> |
| exception.printStackTrace(); |
| } |
| } |
| } |
| } |
| |
| /** |
| * <!-- begin-user-doc --> |
| * Prints diagnostics with indentation. |
| * <!-- end-user-doc --> |
| * @param diagnostic the diagnostic to print. |
| * @param indent the indentation for printing. |
| * @generated |
| */ |
| protected static void printDiagnostic(Diagnostic diagnostic, String indent) |
| { |
| System.out.print(indent); |
| System.out.println(diagnostic.getMessage()); |
| <%if (genModel.useGenerics()) {%> |
| for (Diagnostic child : diagnostic.getChildren()) |
| { |
| printDiagnostic(child, indent + " ");<%=genModel.getNonNLS()%> |
| } |
| <%} else {%> |
| for (Iterator i = diagnostic.getChildren().iterator(); i.hasNext(); ) |
| { |
| printDiagnostic((Diagnostic)i.next(), indent + " ");<%=genModel.getNonNLS()%> |
| } |
| <%}%> |
| } |
| |
| } //<%=genPackage.getExampleClassName()%> |
| <%genModel.emitSortedImports();%> |