ResourceSet resourceSet = new ResourceSetImpl();
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
resourceSet.getPackageRegistry().put(SysmlPackage.eNS_URI, SysmlPackage.eINSTANCE);
resourceSet.getPackageRegistry().put(BlocksPackage.eNS_URI, BlocksPackage.eINSTANCE);
resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
resourceSet.getPackageRegistry().put(EcorePackage.eNS_URI, EcorePackage.eINSTANCE);
resourceSet.getPackageRegistry().put(MyProfilePackage.eNS_URI, MyProfilePackage.eINSTANCE);
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(resourceSet.getResourceFactoryRegistry().DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
Map<URI,URI> uriMap = resourceSet.getURIConverter().getURIMap();
UMLResourcesUtil.init(resourceSet);
final URI uri2 = URI.createURI("jar:file:D:/.../plugins/org.eclipse.uml2.uml.resources_4.1.0.v20130506-1015.jar!/");
URI uri = URI.createFileURI("D:/.../MyModel.uml");
uriMap.put(URI.createURI(UMLResource.LIBRARIES_PATHMAP), uri2.appendSegment("libraries").appendSegment(""));
uriMap.put(URI.createURI(UMLResource.METAMODELS_PATHMAP), uri2.appendSegment("metamodels").appendSegment(""));
uriMap.put(URI.createURI(UMLResource.PROFILES_PATHMAP), uri2.appendSegment("profiles").appendSegment(""));
uriMap.put(URI.createURI("pathmap://Papyrus.profile.uml"),URI.createURI("file:/D:/.../Papyrus.profile.uml/"));
EPackage.Registry.INSTANCE.put("D:/.../MyModel.uml",UMLPackage.eINSTANCE);
Resource resource = resourceSet.createResource(uri);
try {
resource.load(null);
System.out.println("Model: load complete");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Model m = (Model) EcoreUtil.getObjectByType(resource.getContents(), UMLPackage.Literals.MODEL);
if(m==null){
System.err.println("Model: load failed!");
System.exit(1);
}
EList<Element> list = m.allOwnedElements();
//count number of Elements with at least one stereotype
int stereo = 0;
for(int i=0;i<list.size();i++){
if(list.get(i).getAppliedStereotypes().size() > 0){
stereo++;
}
}