/** * Accessor for the main class represented. * @return The name of the class **/ public String getType() { return cmd.getFullClassName(); }
if (cmd.getPersistenceModifier() == ClassPersistenceModifier.PERSISTENCE_CAPABLE && !cmd.isAbstract() && !cmd.isEmbeddedOnly()) if (!storeDataMgr.managesClass(cmd.getFullClassName())) StoreData sd = storeDataMgr.get(cmd.getFullClassName()); if (sd == null)
if (cmd.getInheritanceMetaData().getStrategy() != InheritanceStrategy.NEW_TABLE && cmd.getInheritanceMetaData().getStrategy() != InheritanceStrategy.COMPLETE_TABLE) throw new NucleusUserException(Localiser.msg("057003", cmd.getFullClassName(), cmd.getInheritanceMetaData().getStrategy().toString())).setFatal(); highestMemberNumber = cmd.getNoOfManagedMembers() + cmd.getNoOfInheritedManagedMembers(); String tableImpStr = cmd.getValueForExtension("ddl-imports"); String tableDefStr = null; if (dba.getVendorID() != null) tableDefStr = cmd.getValueForExtension("ddl-definition" + '-' + dba.getVendorID()); tableDefStr = cmd.getValueForExtension("ddl-definition"); tableDef = new MacroString(cmd.getFullClassName(), tableImpStr, tableDefStr);
/** * Accessor for the field mapping for the specified field name. * @param fieldName Name of the field * @return The Java type mapping for the field */ public JavaTypeMapping getMemberMapping(String fieldName) { assertIsInitialized(); int rfn = cmd.getRelativePositionOfMember(fieldName); if (rfn < 0) { throw new NoSuchPersistentFieldException(cmd.getFullClassName(), fieldName); } return getMemberMapping(cmd.getMetaDataForManagedMemberAtRelativePosition(rfn)); }
ClassMetaData cmd = new ClassMetaData(pmd, className); cmd.setEntityName(getAttr(attrs, "name")); cmd.setRequiresExtent(true); cmd.setDetachable(true); cmd.setPersistenceModifier(ClassPersistenceModifier.PERSISTENCE_CAPABLE); cmd.setEmbeddedOnly(embeddedOnly); cmd.setIdentityType(embeddedOnly ? IdentityType.NONDURABLE : IdentityType.APPLICATION); cmd.setCacheable(getAttr(attrs, "cacheable")); cmd.setMetaDataComplete();
this.cmd = cmd; if (cmd.getIdentityType() == IdentityType.APPLICATION || cmd.getIdentityType() == IdentityType.DATASTORE) NucleusLogger.DATASTORE_SCHEMA.debug("Mapping VIEW " + tableName + " to class " + cmd.getFullClassName() + " which uses " + cmd.getIdentityType()); if (cmd.getPersistableSuperclass() != null) throw new PersistentSuperclassNotAllowedException(cmd.getFullClassName()); String viewImpStr = cmd.getValueForExtension(MetaData.EXTENSION_CLASS_VIEW_IMPORTS); String viewDefStr = null; if (dba.getVendorID() != null) viewDefStr = cmd.getValueForExtension(MetaData.EXTENSION_CLASS_VIEW_DEFINITION + '-' + dba.getVendorID()); viewDefStr = cmd.getValueForExtension(MetaData.EXTENSION_CLASS_VIEW_DEFINITION); throw new ViewDefinitionException(cmd.getFullClassName(), null); viewDef = new MacroString(cmd.getFullClassName(), viewImpStr, viewDefStr);
cmd.setPersistenceModifier(ClassPersistenceModifier.PERSISTENCE_CAPABLE); cmd.setPersistenceModifier(ClassPersistenceModifier.PERSISTENCE_AWARE); NucleusLogger.METADATA.warn(LOCALISER.msg("044207", cmd.getFullClassName())); NucleusLogger.METADATA.warn(LOCALISER.msg("044207", cmd.getFullClassName())); NucleusLogger.METADATA.warn(LOCALISER.msg("044208", cmd.getFullClassName())); NucleusLogger.METADATA.warn(LOCALISER.msg("044208", cmd.getFullClassName())); cmd.setTable(table); cmd.setCatalog(catalog); cmd.setSchema(schema); cmd.setEntityName(entityName); cmd.setDetachable(detachable); cmd.setRequiresExtent(requiresExtent); cmd.setObjectIdClass(idClassName); cmd.setEmbeddedOnly(embeddedOnly); cmd.setCacheable(cacheable); cmd.setIdentityType(identityType); if (isClassPersistenceCapable(cls.getSuperclass())) cmd.setPersistenceCapableSuperclass(cls.getSuperclass().getName()); cmd.excludeSuperClassListeners(); cmd.excludeDefaultListeners();
if (cmd.getPersistenceModifier() != ClassPersistenceModifier.PERSISTENCE_CAPABLE) else if (cmd.getIdentityType() == IdentityType.NONDURABLE) if (cmd.hasExtension(METADATA_NONDURABLE_REQUIRES_TABLE) && cmd.getValueForExtension(METADATA_NONDURABLE_REQUIRES_TABLE) != null && cmd.getValueForExtension(METADATA_NONDURABLE_REQUIRES_TABLE).equalsIgnoreCase("false")) if (!storeDataMgr.managesClass(cmd.getFullClassName())) if (cmd.getIdentityType() == IdentityType.APPLICATION) if (!cmd.usesSingleFieldIdentityClass()) String baseClassWithMetaData = cmd.getBaseAbstractClassMetaData().getFullClassName(); Collection<AbstractClassMetaData> pkCmds = getMetaDataManager().getClassMetaDataWithApplicationId(cmd.getObjectidClass()); if (pkCmds != null && pkCmds.size() > 0) String errorMsg = Localiser.msg("050021", cmd.getFullClassName(), cmd.getObjectidClass(), sampleClassInOtherTree); NucleusLogger.DATASTORE.error(errorMsg); throw new NucleusUserException(errorMsg); if (cmd.isEmbeddedOnly()) NucleusLogger.DATASTORE.debug(Localiser.msg("032012", cmd.getFullClassName())); InheritanceMetaData imd = cmd.getInheritanceMetaData(); RDBMSStoreData sdNew = null; if (imd.getStrategy() == InheritanceStrategy.SUBCLASS_TABLE)
if (cmd.getPersistenceModifier() == ClassPersistenceModifier.PERSISTENCE_CAPABLE && !cmd.isEmbeddedOnly()) if (!storeDataMgr.managesClass(cmd.getFullClassName())) StoreData sd = storeDataMgr.get(cmd.getFullClassName()); if (sd == null) clsNameSet.add(cmd.getFullClassName());
QueryMetaData qmd = new QueryMetaData(getAttr(attrs, "name")); qmd.setLanguage(QueryLanguage.JPQL.toString()); cmd.addQuery(qmd); pushStack(qmd); qmd.setResultClass(getAttr(attrs, "result-class")); qmd.setResultMetaDataName(getAttr(attrs, "result-set-mapping")); cmd.addQuery(qmd); pushStack(qmd); cmd.addQueryResultMetaData(qrmd); pushStack(qrmd); cmd.setInheritanceMetaData(inhmd); cmd.setObjectIdClass(getAttr(attrs, "class")); cmd.setInheritanceMetaData(inhmd); cmd.setCatalog(getAttr(attrs, "catalog")); cmd.setSchema(getAttr(attrs, "schema")); cmd.setTable(getAttr(attrs, "name")); joinmd.setCatalog(getAttr(attrs, "catalog")); joinmd.setSchema(getAttr(attrs, "schema")); cmd.addJoin(joinmd); pushStack(joinmd); InheritanceMetaData inhmd = cmd.getInheritanceMetaData();
if (cmd.getPersistenceModifier() != ClassPersistenceModifier.PERSISTENCE_CAPABLE && cmd.getPersistenceModifier() != ClassPersistenceModifier.PERSISTENCE_AWARE) if (cmd.getIdentityType() == IdentityType.APPLICATION && cmd.getObjectidClass() == null && cmd.getNoOfPrimaryKeyMembers() > 1) String pkClassName = cmd.getFullClassName() + AbstractClassMetaData.GENERATED_PK_SUFFIX; if (DataNucleusEnhancer.LOGGER.isDebugEnabled()) DataNucleusEnhancer.LOGGER.debug(LOCALISER.msg("Enhancer.GeneratePrimaryKey", cmd.getFullClassName(), pkClassName)); cmd.setObjectIdClass(pkClassName); PrimaryKeyGenerator pkGen = new PrimaryKeyGenerator(cmd, this); pkClassBytes = pkGen.generate(); throw new InvalidMetaDataException(LOCALISER_CORE, "044065", cmd.getFullClassName(), cmd.getNoOfPrimaryKeyMembers());
AbstractMemberMetaData[] membersToAdd = new AbstractMemberMetaData[cmd.getNoOfPrimaryKeyMembers()]; int fieldCount = cmd.getNoOfManagedMembers(); boolean hasPrimaryKeyInThisClass = false; if (cmd.getNoOfPrimaryKeyMembers() > 0) pkMappings = new JavaTypeMapping[cmd.getNoOfPrimaryKeyMembers()]; if (cmd.getInheritanceMetaData().getStrategy() == InheritanceStrategy.COMPLETE_TABLE) AbstractClassMetaData baseCmd = cmd.getBaseAbstractClassMetaData(); fieldCount = baseCmd.getNoOfManagedMembers(); for (int relFieldNum = 0; relFieldNum < fieldCount; ++relFieldNum) AbstractMemberMetaData overriddenMmd = cmd.getOverriddenMember(mmd.getName()); if (overriddenMmd != null) throw new NucleusException(Localiser.msg("057020", cmd.getFullClassName(), mmd.getName())).setFatal(); AbstractMemberMetaData fmd = cmd.getMetaDataForManagedMemberAtRelativePosition(relFieldNum); if (fmd.isPrimaryKey()) throw new NucleusException(Localiser.msg("057020", cmd.getFullClassName(), fmd.getName())).setFatal(); if (cmd.getIdentityType() == IdentityType.APPLICATION) DatastoreClass superTable = storeMgr.getDatastoreClass(cmd.getPersistableSuperclass(), clr); if (isPKInitialized()) if (superTable == null && cmd.getPersistableSuperclass() != null)
if (cmd.getPersistenceModifier() == ClassPersistenceModifier.PERSISTENCE_CAPABLE && !cmd.isAbstract()) if (!storeDataMgr.managesClass(cmd.getFullClassName())) StoreData sd = storeDataMgr.get(cmd.getFullClassName()); if (sd == null) clsNameSet.add(cmd.getFullClassName());
Class cls = clr.classForName(cmd.getFullClassName()); if (cmd.isEmbeddedOnly()) embeddedTypes.put(cmd.getFullClassName(), type); else if (cmd.isAbstract()) mappedSuperTypes.put(cmd.getFullClassName(), type); entityTypes.put(cmd.getFullClassName(), type); if (cmd.isEmbeddedOnly()) managedType = embeddedTypes.get(cmd.getFullClassName()); else if (cmd.isAbstract()) managedType = mappedSuperTypes.get(cmd.getFullClassName()); managedType = entityTypes.get(cmd.getFullClassName()); try metaCls = clr.classForName(cmd.getFullClassName() + "_"); AbstractMemberMetaData[] mmds = cmd.getManagedMembers(); for (int l=0;l<mmds.length;l++)
ClassMetaData cmd = new ClassMetaData(pmd, name); cmd.setTable(getAttr(attrs, "table")); cmd.setCatalog(getAttr(attrs, "catalog")); cmd.setSchema(getAttr(attrs, "schema")); cmd.setRequiresExtent(getAttr(attrs, "requires-extent")); String detachableStr = getAttr(attrs, "detachable"); if (mmgr.getNucleusContext().getConfiguration().getBooleanProperty(PropertyNames.PROPERTY_METADATA_ALWAYS_DETACHABLE)) cmd.setDetachable(true); cmd.setDetachable(detachableStr); cmd.setObjectIdClass(NucleusJDOHelper.getObjectIdClassForInputIdClass(objIdCls)); cmd.setEmbeddedOnly(getAttr(attrs, "embedded-only")); cmd.setPersistenceModifier(ClassPersistenceModifier.getClassPersistenceModifier(getAttr(attrs, "persistence-modifier"))); cmd.setIdentityType(IdentityType.getIdentityType(getAttr(attrs, "identity-type"))); String cacheableAttr = getAttr(attrs, "cacheable"); if (cacheableAttr != null) cmd.setCacheable(cacheableAttr.equalsIgnoreCase("false") ? false : true); cmd.setSerializeRead(serializeReadAttr.equalsIgnoreCase("true") ? true : false);
QueryMetaData qmd = new QueryMetaData(cmd, null, getAttr(attrs, "name"), "JPQL", null, null, null, null, null); cmd.addQuery(qmd); pushStack(qmd); QueryMetaData qmd = new QueryMetaData(cmd, null, getAttr(attrs, "name"), "SQL", null, getAttr(attrs, "result-class"), getAttr(attrs, "result-set-mapping"), null, null); cmd.addQuery(qmd); pushStack(qmd); cmd.addQueryResultMetaData(qrmd); pushStack(qrmd); cmd.setInheritanceMetaData(new InheritanceMetaData(cmd, InheritanceStrategy.SUBCLASS_TABLE.toString())); cmd.setObjectIdClass(getAttr(attrs, "class")); cmd.setInheritanceMetaData(inhmd); cmd.setCatalog(getAttr(attrs, "catalog")); cmd.setSchema(getAttr(attrs, "schema")); cmd.setTable(getAttr(attrs, "name")); getAttr(attrs, "name"), getAttr(attrs, "catalog"), getAttr(attrs, "schema"), null, null, null, null, null); cmd.addJoin(joinmd); pushStack(joinmd); ColumnMetaData colmd = new ColumnMetaData(cmd.getInheritanceMetaData().getJoinMetaData(),
InheritanceStrategy strat = cmd.getInheritanceMetaData().getStrategy(); if (cmd.isAbstract()) { (cmd.getSuperAbstractClassMetaData() == null || cmd.getSuperAbstractClassMetaData().getInheritanceMetaData().getStrategy() == InheritanceStrategy.SUBCLASS_TABLE)) { cmd.getInheritanceMetaData().getStrategy().toString(), cmd.getFullClassName(), getApiAdapter().getName()); throw new UnsupportedInheritanceStrategyException(unsupportedMsg);
LOGGER.debug(LOCALISER.msg("Enhancer.ValidateClassStart", cmd.getFullClassName())); if (cmd.getPersistenceModifier() == ClassPersistenceModifier.PERSISTENCE_CAPABLE) addMessage("ENHANCED (PersistenceCapable) : " + cmd.getFullClassName(), false); else if (cmd.getPersistenceModifier() == ClassPersistenceModifier.PERSISTENCE_AWARE) addMessage("ENHANCED (PersistenceAware) : " + cmd.getFullClassName(), false); addMessage("NOT ENHANCED (NonPersistent) : " + cmd.getFullClassName(), false); if (cmd.getPersistenceModifier() == ClassPersistenceModifier.PERSISTENCE_CAPABLE) addMessage("NOT ENHANCED (PersistenceCapable) : " + cmd.getFullClassName(), false); else if (cmd.getPersistenceModifier() == ClassPersistenceModifier.PERSISTENCE_AWARE) addMessage("NOT ENHANCED (PersistenceAware) : " + cmd.getFullClassName(), false); addMessage("NOT ENHANCED (NonPersistent) : " + cmd.getFullClassName(), false); LOGGER.debug(LOCALISER.msg("Enhancer.ValidateClassEnd", cmd.getFullClassName()));
if (classesWithoutPersistenceInfo.contains(cmd.getFullClassName())) classesWithoutPersistenceInfo.remove(cmd.getFullClassName()); if (cmd.getEntityName() != null) classMetaDataByEntityName.put(cmd.getEntityName(), cmd); if (cmd.getInheritanceMetaData() != null) DiscriminatorMetaData dismd = cmd.getInheritanceMetaData().getDiscriminatorMetaData(); if (dismd != null) classMetaDataByDiscriminatorName.put(cmd.getFullClassName(), cmd); registerMetaDataForClass(cmd.getFullClassName(), cmd); if (cmd.getListeners() != null) List classListeners = cmd.getListeners();
if (classesWithoutPersistenceInfo.contains(cmd.getFullClassName())) classesWithoutPersistenceInfo.remove(cmd.getFullClassName()); registerMetaDataForClass(cmd.getFullClassName(), cmd); ormClassMetaDataByClass.put(cmd.getFullClassName(), cmd); if (cmd.getEntityName() != null) classMetaDataByEntityName.put(cmd.getEntityName(), cmd); if (cmd.getInheritanceMetaData() != null) DiscriminatorMetaData dismd = cmd.getInheritanceMetaData().getDiscriminatorMetaData(); if (dismd != null) classMetaDataByDiscriminatorName.put(cmd.getFullClassName(), cmd);