public EPackage[] getEPackages(boolean loadOnDemand) { List<EPackage> result = new ArrayList<EPackage>(); for (InternalCDOPackageInfo packageInfo : packageInfos) { EPackage ePackage = packageInfo.getEPackage(loadOnDemand); if (ePackage != null) { result.add(ePackage); } } return result.toArray(new EPackage[result.size()]); }
public InternalCDOPackageInfo getPackageInfo(String packageURI) { for (InternalCDOPackageInfo packageInfo : packageInfos) { if (packageInfo.getPackageURI().equals(packageURI)) { return packageInfo; } } return null; }
public boolean handle(int row, final Object... values) { InternalCDOPackageInfo packageInfo = createPackageInfo(); packageInfo.setPackageURI((String)values[1]); packageInfo.setParentURI((String)values[2]); String unit = (String)values[0]; List<InternalCDOPackageInfo> list = packageInfos.get(unit); if (list == null) { list = new ArrayList<InternalCDOPackageInfo>(); packageInfos.put(unit, list); } list.add(packageInfo); return true; } };
private DBObject[] marshallPackages(InternalCDOPackageInfo[] packageInfos) { DBObject[] result = new DBObject[packageInfos.length]; for (int i = 0; i < packageInfos.length; i++) { InternalCDOPackageInfo packageInfo = packageInfos[i]; DBObject doc = new BasicDBObject(); doc.put(PACKAGES_URI, packageInfo.getPackageURI()); String parent = packageInfo.getParentURI(); if (!StringUtil.isEmpty(parent)) { doc.put(PACKAGES_PARENT, parent); } for (EClassifier classifier : packageInfo.getEPackage().getEClassifiers()) { int classifierID = store.getClasses().mapNewClassifier(classifier); doc.put(CLASSIFIER_PREFIX + classifierID, classifier.getName()); } result[i] = doc; } return result; }
public synchronized void putPackageUnit(InternalCDOPackageUnit packageUnit) { LifecycleUtil.checkActive(this); packageUnit.setPackageRegistry(this); for (InternalCDOPackageInfo packageInfo : packageUnit.getPackageInfos()) { EPackage ePackage = packageInfo.getEPackage(false); if (ePackage != null) { registerPackageInfo(ePackage, packageInfo); basicPut(ePackage.getNsURI(), ePackage); } else { basicPut(packageInfo.getPackageURI(), packageInfo); } } resetInternalCaches(); }
if (oldPackageInfo.getEPackage(false) == null) oldPackageInfo.getPackageUnit().setState(CDOPackageUnit.State.LOADED); InternalCDOPackageInfo newPackageInfo = (InternalCDOPackageInfo)value; InternalCDOPackageUnit oldPackageUnit = oldPackageInfo.getPackageUnit(); InternalCDOPackageUnit newPackageUnit = newPackageInfo.getPackageUnit(); if (oldPackageUnit.getState() == CDOPackageUnit.State.NEW && newPackageUnit.getState() != CDOPackageUnit.State.NEW)
String packageURI = packageInfo.getPackageURI(); String parentURI = packageInfo.getParentURI(); String unitID = packageInfo.getPackageUnit().getID();
private void initPackageInfos(EPackage ePackage, List<InternalCDOPackageInfo> result) { InternalCDOPackageInfo packageInfo = (InternalCDOPackageInfo)CDOModelUtil.createPackageInfo(); packageInfo.setPackageUnit(this); packageInfo.setPackageURI(ePackage.getNsURI()); packageInfo.setParentURI(ePackage.getESuperPackage() == null ? null : ePackage.getESuperPackage().getNsURI()); packageRegistry.basicPut(ePackage.getNsURI(), ePackage); packageRegistry.registerPackageInfo(ePackage, packageInfo); result.add(packageInfo); for (EPackage subPackage : ePackage.getESubpackages()) { initPackageInfos(subPackage, result); } }
private void createAllClassMappings() { InternalRepository repository = (InternalRepository)getStore().getRepository(); InternalCDOPackageRegistry packageRegistry = repository.getPackageRegistry(false); for (InternalCDOPackageInfo packageInfo : packageRegistry.getPackageInfos()) { if (!packageInfo.isSystemPackage()) { for (EClassifier eClassifier : packageInfo.getEPackage().getEClassifiers()) { if (eClassifier instanceof EClass) { EClass eClass = (EClass)eClassifier; if (isMapped(eClass)) { getClassMapping(eClass); // Get or create it } } } } } }
private InternalCDOPackageUnit collectPackageUnit(Object value) { if (value instanceof InternalCDOPackageInfo) { return ((InternalCDOPackageInfo)value).getPackageUnit(); } if (value instanceof EPackage) { InternalCDOPackageInfo packageInfo = getPackageInfo((EPackage)value); if (packageInfo != null) { InternalCDOPackageUnit packageUnit = packageInfo.getPackageUnit(); return packageUnit; } } return null; }
public InternalCDOPackageInfo handlePackageInfo(String packageURI) { InternalCDOPackageInfo packageInfo = (InternalCDOPackageInfo)CDOModelUtil.createPackageInfo(); packageInfo.setPackageURI(packageURI); packageInfos.add(packageInfo); return packageInfo; }
public boolean isSystem() { return getTopLevelPackageInfo().isSystemPackage(); }
protected void exportPackages(OUT out) throws Exception { InternalCDOPackageRegistry packageRegistry = repository.getPackageRegistry(false); InternalCDOPackageUnit[] packageUnits = packageRegistry.getPackageUnits(false); for (InternalCDOPackageUnit packageUnit : packageUnits) { String id = packageUnit.getID(); CDOPackageUnit.Type type = packageUnit.getOriginalType(); long time = packageUnit.getTimeStamp(); EPackage ePackage = packageUnit.getTopLevelPackageInfo().getEPackage(); String data = new String(EMFUtil.getEPackageBytes(ePackage, false, packageRegistry)); startPackageUnit(out, id, type, time, data); for (InternalCDOPackageInfo packageInfo : packageUnit.getPackageInfos()) { String packageURI = packageInfo.getPackageURI(); exportPackageInfo(out, packageURI); } endPackageUnit(out); } }
if (value instanceof InternalCDOPackageInfo) packageUnit = ((InternalCDOPackageInfo)value).getPackageUnit(); if (packageInfo != null) packageUnit = packageInfo.getPackageUnit();
private void mapPackageInfos(InternalCDOPackageInfo[] packageInfos, Connection connection, boolean unmap) { for (InternalCDOPackageInfo packageInfo : packageInfos) { EPackage ePackage = packageInfo.getEPackage(); EClass[] persistentClasses = EMFUtil.getPersistentClasses(ePackage); mapClasses(connection, unmap, persistentClasses); } }
private InternalCDOPackageInfo[] readPackageInfos(DBObject embedded) { BasicDBList infos = (BasicDBList)embedded.get(PACKAGES); InternalCDOPackageInfo[] result = new InternalCDOPackageInfo[infos.size()]; int i = 0; for (Object info : infos) { DBObject infoObject = (DBObject)info; String uri = (String)infoObject.get(PACKAGES_URI); String parent = (String)infoObject.get(PACKAGES_PARENT); InternalCDOPackageInfo packageInfo = createPackageInfo(); packageInfo.setPackageURI(uri); packageInfo.setParentURI(parent); result[i++] = packageInfo; } return result; }
private EPackage[] loadPackagesFromGlobalRegistry() { EPackage[] ePackages = new EPackage[packageInfos.length]; for (int i = 0; i < ePackages.length; i++) { ePackages[i] = loadPackageFromGlobalRegistry(packageInfos[i].getPackageURI()); if (ePackages[i] == null) { return null; } } return ePackages; }
public synchronized InternalCDOPackageUnit getPackageUnit(String id) { LifecycleUtil.checkActive(this); for (Object value : values()) { InternalCDOPackageUnit packageUnit = null; if (value instanceof InternalCDOPackageInfo) { packageUnit = ((InternalCDOPackageInfo)value).getPackageUnit(); } else if (value instanceof EPackage) { InternalCDOPackageInfo packageInfo = getPackageInfo((EPackage)value); if (packageInfo != null) { packageUnit = packageInfo.getPackageUnit(); } } if (packageUnit != null && id.equals(packageUnit.getID())) { return packageUnit; } } return null; }
private void checkPackageRegistrationProblems(InternalCDOSession session, EClass eClass) { if (session.options().isGeneratedPackageEmulationEnabled()) { // Check that there are no multiple EPackages with the same URI in system. Bug 335004 String packageURI = eClass.getEPackage().getNsURI(); Object packageObject = session.getPackageRegistry().get(packageURI); if (packageObject instanceof InternalCDOPackageInfo) { packageObject = ((InternalCDOPackageInfo)packageObject).getEPackage(false); } if (packageObject instanceof EPackage && packageObject != eClass.getEPackage()) { throw new IllegalStateException(MessageFormat.format( "Global EPackage {0} for EClass {1} is different from EPackage found in CDOPackageRegistry", packageURI, eClass)); } } } }
public String getID() { try { return getTopLevelPackageInfo().getPackageURI(); } catch (RuntimeException ex) { return Messages.getString("CDOPackageUnitImpl.0"); //$NON-NLS-1$ } }