public EquinoxObjectClassDefinition getObjectClassDefinition(String id, String locale) { if (_bundle.getState() != Bundle.ACTIVE) return null; // return none if not active MetaTypeProviderWrapper[] wrappers = getMetaTypeProviders(); for (int i = 0; i < wrappers.length; i++) { if (id.equals(wrappers[i].pid)) // found a matching pid now call the actual provider return wrappers[i].getObjectClassDefinition(id, locale); } return null; }
private String[] getPids(boolean factory) { if (_bundle.getState() != Bundle.ACTIVE) return new String[0]; // return none if not active MetaTypeProviderWrapper[] wrappers = getMetaTypeProviders(); ArrayList<String> results = new ArrayList<String>(); for (int i = 0; i < wrappers.length; i++) { // return only the correct type of pids (regular or factory) if (factory == wrappers[i].factory) results.add(wrappers[i].pid); } return results.toArray(new String[results.size()]); }
public String[] getLocales() { if (_bundle.getState() != Bundle.ACTIVE) return new String[0]; // return none if not active MetaTypeProviderWrapper[] wrappers = getMetaTypeProviders(); ArrayList<String> locales = new ArrayList<String>(); // collect all the unique locales from all providers we found for (int i = 0; i < wrappers.length; i++) { String[] wrappedLocales = wrappers[i].getLocales(); if (wrappedLocales == null) continue; for (int j = 0; j < wrappedLocales.length; j++) if (!locales.contains(wrappedLocales[j])) locales.add(wrappedLocales[j]); } return locales.toArray(new String[locales.size()]); }