public DiscriminatorStrategy getStrategy() { org.datanucleus.metadata.DiscriminatorStrategy str = getInternal().getStrategy(); if (str == org.datanucleus.metadata.DiscriminatorStrategy.CLASS_NAME) { return DiscriminatorStrategy.CLASS_NAME; } else if (str == org.datanucleus.metadata.DiscriminatorStrategy.VALUE_MAP) { return DiscriminatorStrategy.VALUE_MAP; } else if (str == org.datanucleus.metadata.DiscriminatorStrategy.NONE) { return DiscriminatorStrategy.NONE; } return DiscriminatorStrategy.UNSPECIFIED; }
DiscriminatorStrategy strategy = discMapping.getTable().getDiscriminatorMetaData().getStrategy(); if (strategy != DiscriminatorStrategy.NONE)
if (dismd.getStrategy() != null) str.append(" strategy=\"" + dismd.getStrategy() + "\"");
/** * Convenience method that takes a result set that contains a discriminator column and returns the class name that it represents. * @param discrimMapping Mapping for the discriminator column * @param dismd Metadata for the discriminator * @param rs The result set * @param ec execution context * @return The class name for the object represented in the current row */ public static String getClassNameFromDiscriminatorResultSetRow(JavaTypeMapping discrimMapping, DiscriminatorMetaData dismd, ResultSet rs, ExecutionContext ec) { String rowClassName = null; if (discrimMapping != null && dismd.getStrategy() != DiscriminatorStrategy.NONE) { try { String discriminatorColName = discrimMapping.getDatastoreMapping(0).getColumn().getIdentifier().getName(); String discriminatorValue = rs.getString(discriminatorColName); rowClassName = ec.getMetaDataManager().getClassNameFromDiscriminatorValue(discriminatorValue, dismd); } catch (SQLException e) { // discriminator column doesn't exist with this name } } return rowClassName; }
private void initializeDiscriminatorMapping(DiscriminatorMetaData dismd) { if (dismd != null) { discriminatorMetaData = dismd; if (dismd.getStrategy() == DiscriminatorStrategy.CLASS_NAME) { discriminatorMapping = new DiscriminatorStringMapping( dba, this, dba.getMappingManager(storeMgr).getMapping(String.class)); } else if (dismd.getStrategy() == DiscriminatorStrategy.VALUE_MAP) { ColumnMetaData disColmd = dismd.getColumnMetaData(); if (disColmd != null && disColmd.getJdbcType() != null) { if (disColmd.getJdbcType().equalsIgnoreCase("INTEGER") || disColmd.getJdbcType().equalsIgnoreCase("BIGINT") || disColmd.getJdbcType().equalsIgnoreCase("NUMERIC")) { discriminatorMapping = new DiscriminatorLongMapping(dba, this, dba .getMappingManager(storeMgr).getMapping(Long.class)); } else { discriminatorMapping = new DiscriminatorStringMapping( dba, this, dba.getMappingManager(storeMgr).getMapping(String.class)); } } else { discriminatorMapping = new DiscriminatorStringMapping( dba, this, dba.getMappingManager(storeMgr).getMapping(String.class)); } } } }
if (dismd != null) if (dismd.getStrategy() == DiscriminatorStrategy.CLASS_NAME) else if (dismd.getStrategy() == DiscriminatorStrategy.VALUE_MAP)
if (dismd.getStrategy() == DiscriminatorStrategy.VALUE_MAP)
if (dismd != null) if (dismd.getStrategy() == DiscriminatorStrategy.CLASS_NAME) else if (dismd.getStrategy() == DiscriminatorStrategy.VALUE_MAP && dismd.getValue() != null)
MappingManager mapMgr = storeMgr.getMappingManager(); if (dismd.getStrategy() == DiscriminatorStrategy.CLASS_NAME) else if (dismd.getStrategy() == DiscriminatorStrategy.VALUE_MAP) else if (dismd.getStrategy() == DiscriminatorStrategy.VALUE_MAP_ENTITY_NAME)
if (discrimMapping != null) if (discrimMetaData.getStrategy() != DiscriminatorStrategy.NONE)
boolean hasDiscriminator = (discMapping != null && dismd != null && dismd.getStrategy() != DiscriminatorStrategy.NONE);
if (dismd.getStrategy() != null && dismd.getStrategy() != DiscriminatorStrategy.NONE) discrimMetaData.setStrategy(dismd.getStrategy());
JavaTypeMapping discriminatorMapping = table.getSurrogateMapping(SurrogateColumnType.DISCRIMINATOR, false); DiscriminatorMetaData discriminatorMetaData = table.getDiscriminatorMetaData(); if (discriminatorMapping != null && discriminatorMetaData.getStrategy() != DiscriminatorStrategy.NONE)
JavaTypeMapping discriminatorMapping = table.getSurrogateMapping(SurrogateColumnType.DISCRIMINATOR, false); DiscriminatorMetaData discriminatorMetaData = table.getDiscriminatorMetaData(); if (discriminatorMapping != null && discriminatorMetaData.getStrategy() != DiscriminatorStrategy.NONE)
StatementClassMapping elementClsMapping = new StatementClassMapping(); if (elementInfo[0].getDatastoreClass().getDiscriminatorMetaData() != null && elementInfo[0].getDatastoreClass().getDiscriminatorMetaData().getStrategy() != DiscriminatorStrategy.NONE)
elementInfo[0].getDatastoreClass().getDiscriminatorMetaData().getStrategy() != DiscriminatorStrategy.NONE)
if (valueTable.getDiscriminatorMetaData() != null && valueTable.getDiscriminatorMetaData().getStrategy() != DiscriminatorStrategy.NONE)
elementInfo[0].getDatastoreClass().getDiscriminatorMetaData().getStrategy() != DiscriminatorStrategy.NONE)