String name = classDescriptor.getJavaClass().getName(); TableInfo table = _entityMap.get(name); if (table == null) { if (!classDescriptor.hasNature(ClassDescriptorJDONature.class.getName())) { throw new MappingException("ClassDescriptor is not a JDOClassDescriptor"); if (classDescriptor.getExtends() != null) { table.setExtendedTable(createTableInfo(classDescriptor.getExtends()));
fields = _clsDesc.getFields(); jdoFields0 = new String[fields.length + 1]; sqlTypes0 = new int[fields.length + 1]; jdoFields0[0] = _clsDesc.getIdentity().getFieldName(); sqlTypes0[0] = new FieldDescriptorJDONature(_clsDesc.getIdentity()).getSQLType()[0]; for (int i = 0; i < fields.length; ++i) { if (fields[i].hasNature(FieldDescriptorJDONature.class.getName())) { _clsDesc.getJavaClass(), jdoFields, sqlTypes);
ClassDescriptor baseClassDescriptor = classDescriptor.getExtends(); ArrayList<FieldDescriptor> fullFields = new ArrayList<FieldDescriptor>(); ClassDescriptor origin = baseClassDescriptor; while (origin.getExtends() != null) { origin = origin.getExtends(); FieldDescriptor[] currentFields = classDescriptor.getFields();
public Class getResultType() { return _engine.getDescriptor().getJavaClass(); }
ClassDescriptor extendsDesc = classDesc.getExtends(); if (extendsDesc != null) { if (extendsDesc instanceof XMLClassDescriptor) { FieldDescriptor identity = classDesc.getIdentity(); FieldDescriptor[] fields = classDesc.getFields();
new ClassDescriptorJDONature(clsDesc).getKeyGeneratorDescriptor(); FieldDescriptor fldDesc = clsDesc.getIdentity(); int[] sqlTypes = new FieldDescriptorJDONature(fldDesc).getSQLType(); int sqlType = (sqlTypes == null) ? 0 : sqlTypes[0]; if ((clsDesc.getExtends() == null) && (keyGenDesc != null)) { String keyGenFactoryName = keyGenDesc.getKeyGeneratorFactoryName(); KeyGeneratorFactory keyGenFactory =
if (LOG.isDebugEnabled()) { LOG.debug ("Potential extending class descriptor: " + potentialClassDescriptor.getJavaClass().getName()); + potentialClassDescriptor.getJavaClass().getName() + "/" + identityDescriptors[i].getFieldName() + " at position " + columnIndex); suggestedNumberOfFields += potentialClassDescriptor.getFields().length; } else if (!iter.hasNext() && isNull && numberOfIdentitiesToAnalyze > 0) { potentialLeafDescriptor = potentialClassDescriptorPrevious; potentialClassDescriptor.getFields(); for (int i = 0; i < potentialFields.length; i++) { String[] columnNames = suggestedNumberOfFields += potentialClassDescriptor.getFields().length; + potentialLeafDescriptor.getJavaClass().getName()); LOG.debug("After analysis, " + suggestedNumberOfFields + " fields need to be loaded.");
/** * Returns the {@link FieldDescriptor} for the given name. * @param name A field name. * @return The associated {@link FieldDescriptor}. */ public FieldDescriptor getField(final String name) { FieldDescriptor[] fields = ((ClassDescriptor) getHolder()).getFields(); for (int i = 0; i < fields.length; ++i) { FieldDescriptor field = fields[i]; if ((field.hasNature(FieldDescriptorJDONature.class.getName())) && (field.getFieldName().equals(name))) { return field; } } FieldDescriptor[] identities = ((ClassDescriptorImpl) getHolder()).getIdentities(); for (int i = 0; i < identities.length; ++i) { FieldDescriptor field = identities[i]; if ((field.hasNature(FieldDescriptorJDONature.class.getName())) && (field.getFieldName().equals(name))) { return field; } } return null; }
+ fieldClassDescriptor.getIdentity().getFieldName();
while (curDesc.getExtends() != null) { baseDesc = curDesc.getExtends(); String[] curDescIdNames = SQLHelper.getIdentitySQLNames(curDesc); String[] baseDescIdNames = SQLHelper.getIdentitySQLNames(baseDesc); if (LOG.isTraceEnabled()) { LOG.trace("Adding outer left join for " + classDescriptor.getJavaClass().getName() + " on table " + clsDescNature.getTableName()); throw new QueryException( "Problem obtaining persistence engine for ClassDescriptor " + classDescriptor.getJavaClass().getName(), e);
public static int numberOfExtendingClassDescriptors(final ClassDescriptor classDescriptor) { int numberOfExtendLevels = 1; ClassDescriptor currentClassDescriptor = classDescriptor; while (currentClassDescriptor.getExtends() != null) { currentClassDescriptor = currentClassDescriptor.getExtends(); numberOfExtendLevels++; } return numberOfExtendLevels; }
Class<?> toResolve = iter.next().getJavaClass(); ClassDescriptor desc; try { throw new MappingException ("Cannot resolve type for " + toResolve.getName(), e); if (!(desc.hasNature(ClassDescriptorJDONature.class.getName()))) { throw new IllegalArgumentException( "Class does not have a JDO descriptor");
private void resolveColumns(final ClassDescriptor selfCD, final TableInfo table) throws MappingException { FieldDescriptor[] selfFDs = selfCD.getFields(); int persIndex = 0; for (int fieldIndex = 0; fieldIndex < selfFDs.length; fieldIndex++) { if (!(referedCD.hasNature(ClassDescriptorJDONature.class.getName()))) { throw new MappingException("Related class is not a JDOClassDescriptor");
/** * {@inheritDoc} */ public Persistence getPersistence(final ClassDescriptor clsDesc) { if (!(clsDesc.hasNature(ClassDescriptorJDONature.class.getName()))) { return null; } try { Persistence sqlEngine = _classDescriptorToPersistence.get(clsDesc); if (sqlEngine == null) { sqlEngine = new SQLEngine(clsDesc, this); _classDescriptorToPersistence.put(clsDesc, sqlEngine); } return sqlEngine; } catch (MappingException except) { LOG.fatal(Messages.format("jdo.fatalException", except)); return null; } }
/** * Adds a class descriptor. Will throw a mapping exception if a descriptor for this class * already exists. * * @param descriptor The descriptor to add. * @throws MappingException A descriptor for this class already exists. */ protected final void addDescriptor(final ClassDescriptor descriptor) throws MappingException { String classname = descriptor.getJavaClass().getName(); if (_descriptorsByClassname.containsKey(classname)) { if (!isAllowRedefinition()) { throw new MappingException("mapping.duplicateDescriptors", classname); } for (Iterator iterator = _descriptors.iterator(); iterator.hasNext(); ) { ClassDescriptor d = (ClassDescriptor) iterator.next(); if (classname.equals(d.getJavaClass().getName())) { _descriptors.remove(d); } } _descriptors.add(descriptor); } else { _descriptors.add(descriptor); } //-- if we make it here...add class _descriptorsByClassname.put(classname, descriptor); }
ClassDescriptor extendsDesc = classDesc.getExtends(); if (extendsDesc != null) { if (extendsDesc instanceof XMLClassDescriptor) { FieldDescriptor identity = classDesc.getIdentity(); FieldDescriptor[] fields = classDesc.getFields();
ClassDescriptor tempDesc = _clsDesc.getExtends(); while (tempDesc != null) { String tableName = new ClassDescriptorJDONature(tempDesc).getTableName(); _queryExpr.addTable(tableName, tableName); FieldDescriptor leftField = oldDesc.getIdentity(); FieldDescriptor rightField = tempDesc.getIdentity(); tempDesc = tempDesc.getExtends();
Stack<ClassDescriptor> stack = new Stack<ClassDescriptor>(); stack.push(base); while (base.getExtends() != null) { base = base.getExtends(); stack.push(base); FieldDescriptor[] fieldDescriptors = base.getFields(); for (int i = 0; i < fieldDescriptors.length; i++) {
&& !potentialLeafDescriptor.getJavaClass().getName().equals(_type)) { entity.initializeFields(potentialLeafDescriptor.getFields().length); entity.setActualEntityClass(potentialLeafDescriptor.getJavaClass()); entity.setExpanded(true);
protected final void resolveRelations(ClassDescriptor clsDesc) { FieldDescriptor[] fields; fields = clsDesc.getFields(); for (int i = 0; i < fields.length; ++i) { if (fields[i].getClassDescriptor() != null) continue; ClassDescriptor relDesc; Class fieldType = fields[i].getFieldType(); if (fieldType != null) { relDesc = getDescriptor(fieldType.getName()); if (relDesc != null && relDesc instanceof XMLClassDescriptor && fields[i] instanceof XMLFieldDescriptorImpl) { ((XMLFieldDescriptorImpl) fields[i]).setClassDescriptor(relDesc); } } } if (clsDesc instanceof XMLClassDescriptorImpl) ((XMLClassDescriptorImpl) clsDesc).sortDescriptors(); }