/** * {@inheritDoc} */ public Set<Query> createPKQueriesForClass(InterMineObject obj, Source source, boolean queryNulls, ClassDescriptor cld) throws MetaDataException { Set<PrimaryKey> primaryKeys; if (source == null) { primaryKeys = new LinkedHashSet<PrimaryKey>(PrimaryKeyUtil.getPrimaryKeys(cld) .values()); } else { primaryKeys = DataLoaderHelper.getPrimaryKeys(cld, source, lookupOs); } LOG.debug("primary keys for class " + cld.getName() + " = " + primaryKeys); Set<Query> returnSet = new LinkedHashSet<Query>(); int pkCount = primaryKeys.size(); for (PrimaryKey pk : primaryKeys) { try { createPKQueryForPK(obj, queryNulls, cld, pk, source, returnSet); } catch (IllegalArgumentException e) { pkCount--; } } if (primaryKeys.isEmpty() || (pkCount > 0)) { // This set may be empty return returnSet; } else { // All PK queries were invalid return null; } }
/** * Retrieve a map from key name to PrimaryKey object. The Map contains all the primary keys * that exist on a particular class, without performing any recursion. * * @param cld the ClassDescriptor to fetch primary keys for * @return the Map from key names to PrimaryKeys */ public static Map<String, PrimaryKey> getPrimaryKeys(ClassDescriptor cld) { Map<String, PrimaryKey> keyMap = primaryKeyCache.get(cld); if (keyMap == null) { keyMap = new LinkedHashMap<String, PrimaryKey>(); Properties keys = getKeyProperties(cld.getModel().getName()); String cldName = Util.unqualifiedName(cld.getName()); Properties cldKeys = Util.getPropertiesStartingWith(cldName, keys); cldKeys = Util.stripStart(cldName, cldKeys); List<String> keyNames = new ArrayList<String>(); for (Object key : cldKeys.keySet()) { if (key instanceof String) { keyNames.add((String) key); } } Collections.sort(keyNames); for (String keyName : keyNames) { PrimaryKey key = new PrimaryKey(keyName, (String) cldKeys.get(keyName), cld); keyMap.put(keyName, key); } primaryKeyCache.put(cld, keyMap); } return keyMap; }
/** * {@inheritDoc} */ public Set<Query> createPKQueriesForClass(InterMineObject obj, Source source, boolean queryNulls, ClassDescriptor cld) throws MetaDataException { Set<PrimaryKey> primaryKeys; if (source == null) { primaryKeys = new LinkedHashSet<PrimaryKey>(PrimaryKeyUtil.getPrimaryKeys(cld) .values()); } else { primaryKeys = DataLoaderHelper.getPrimaryKeys(cld, source, lookupOs); } LOG.debug("primary keys for class " + cld.getName() + " = " + primaryKeys); Set<Query> returnSet = new LinkedHashSet<Query>(); int pkCount = primaryKeys.size(); for (PrimaryKey pk : primaryKeys) { try { createPKQueryForPK(obj, queryNulls, cld, pk, source, returnSet); } catch (IllegalArgumentException e) { pkCount--; } } if (primaryKeys.isEmpty() || (pkCount > 0)) { // This set may be empty return returnSet; } else { // All PK queries were invalid return null; } }
/** * Retrieve a map from key name to PrimaryKey object. The Map contains all the primary keys * that exist on a particular class, without performing any recursion. * * @param cld the ClassDescriptor to fetch primary keys for * @return the Map from key names to PrimaryKeys */ public static Map<String, PrimaryKey> getPrimaryKeys(ClassDescriptor cld) { Map<String, PrimaryKey> keyMap = primaryKeyCache.get(cld); if (keyMap == null) { keyMap = new LinkedHashMap<String, PrimaryKey>(); Properties keys = getKeyProperties(cld.getModel().getName()); String cldName = Util.unqualifiedName(cld.getName()); Properties cldKeys = Util.getPropertiesStartingWith(cldName, keys); cldKeys = Util.stripStart(cldName, cldKeys); List<String> keyNames = new ArrayList<String>(); for (Object key : cldKeys.keySet()) { if (key instanceof String) { keyNames.add((String) key); } } Collections.sort(keyNames); for (String keyName : keyNames) { PrimaryKey key = new PrimaryKey(keyName, (String) cldKeys.get(keyName), cld); keyMap.put(keyName, key); } primaryKeyCache.put(cld, keyMap); } return keyMap; }
for (ClassDescriptor cld : classDescriptors) { if (source == null) { if (!PrimaryKeyUtil.getPrimaryKeys(cld).isEmpty()) { noKeys = false;
for (ClassDescriptor cld : classDescriptors) { if (source == null) { if (!PrimaryKeyUtil.getPrimaryKeys(cld).isEmpty()) { noKeys = false;
Map<String, PrimaryKey> keysForCls = PrimaryKeyUtil.getPrimaryKeys(cld); String[] tokens = keyList.split(","); for (int i = 0; i < tokens.length; i++) {
Map<String, PrimaryKey> keysForCls = PrimaryKeyUtil.getPrimaryKeys(cld); String[] tokens = keyList.split(","); for (int i = 0; i < tokens.length; i++) {
Set<PrimaryKey> keysForClass; if (source == null) { keysForClass = new HashSet<PrimaryKey>(PrimaryKeyUtil.getPrimaryKeys(cld) .values()); } else {
Set<PrimaryKey> keysForClass; if (source == null) { keysForClass = new HashSet<PrimaryKey>(PrimaryKeyUtil.getPrimaryKeys(cld) .values()); } else {
public void testGetPrimaryKeysCldInherited() { ClassDescriptor cld = model.getClassDescriptorByName("org.intermine.model.basicmodel.Manager"); assertEquals(expected, PrimaryKeyUtil.getPrimaryKeys(cld)); }
Map<String, IndexStatement> statements) { Map<String, PrimaryKey> primaryKeys = PrimaryKeyUtil.getPrimaryKeys(cld); String tableName = DatabaseUtil.getTableName(cld).toLowerCase(); if (!schema.getMissingTables().contains(tableName)) {
if (iCld != null) { Map<String, PrimaryKey> map = PrimaryKeyUtil .getPrimaryKeys(iCld); Map<String, PrimaryKey> map = PrimaryKeyUtil.getPrimaryKeys(cld); String cldName = TypeUtil.unqualifiedName(cld.getName()); String keyList = (String) keys.get(cldName);
Map<String, IndexStatement> statements) { Map<String, PrimaryKey> primaryKeys = PrimaryKeyUtil.getPrimaryKeys(cld); String tableName = DatabaseUtil.getTableName(cld).toLowerCase(); if (!schema.getMissingTables().contains(tableName)) {
if (iCld != null) { Map<String, PrimaryKey> map = PrimaryKeyUtil .getPrimaryKeys(iCld); Map<String, PrimaryKey> map = PrimaryKeyUtil.getPrimaryKeys(cld); String cldName = TypeUtil.unqualifiedName(cld.getName()); String keyList = (String) keys.get(cldName);
public void testGetPrimaryKeysCld() { ClassDescriptor cld = model.getClassDescriptorByName("org.intermine.model.basicmodel.Employee"); expected.put("key1", new PrimaryKey("key1", "name, age", cld)); expected.put("key2", new PrimaryKey("key2", "name, fullTime", cld)); assertEquals(expected, PrimaryKeyUtil.getPrimaryKeys(cld)); }
public void testObjectPrimaryKeyIsNull1() throws Exception { Source source = new Source("testsource"); Employable e = (Employable) DynamicUtil.createObject(Collections.singleton(Employable.class)); e.setName("jkhsdfg"); ClassDescriptor cld = model.getClassDescriptorByName("org.intermine.model.testmodel.Employable"); Set primaryKeys = new HashSet(PrimaryKeyUtil.getPrimaryKeys(cld).values()); PrimaryKey pk = (PrimaryKey) primaryKeys.iterator().next(); assertTrue(DataLoaderHelper.objectPrimaryKeyNotNull(model, e, cld, pk, source, new IntToIntMap())); }
public void testObjectPrimaryKeyIsNullNullField() throws Exception { Source source = new Source("testsource"); Employable e = (Employable) DynamicUtil.createObject(Collections.singleton(Employable.class)); e.setName(null); ClassDescriptor cld = model.getClassDescriptorByName("org.intermine.model.testmodel.Employable"); Set primaryKeys = new HashSet(PrimaryKeyUtil.getPrimaryKeys(cld).values()); PrimaryKey pk = (PrimaryKey) primaryKeys.iterator().next(); assertFalse(DataLoaderHelper.objectPrimaryKeyNotNull(model, e, cld, pk, source, new IntToIntMap())); }
for (Map.Entry<String, PrimaryKey> entry : PrimaryKeyUtil.getPrimaryKeys(cld).entrySet()) { String keyName = entry.getKey(); PrimaryKey key = entry.getValue();
for (Map.Entry<String, PrimaryKey> entry : PrimaryKeyUtil.getPrimaryKeys(cld).entrySet()) { String keyName = entry.getKey(); PrimaryKey key = entry.getValue();