/** * Get default sequence */ public Sequence getDefaultSequence() { if (!hasDefaultSequence()) { setDefaultSequence(createPlatformDefaultSequence()); } return defaultSequence; }
protected void sequencesAfterCloneCleanup() { Sequence defaultSequenceClone = null; if (hasDefaultSequence()) { defaultSequenceClone = (Sequence)getDefaultSequence().clone(); setDefaultSequence(defaultSequenceClone); } HashMap sequencesDeepClone = null; if (getSequences() != null) { sequencesDeepClone = new HashMap(getSequences().size()); Iterator it = getSequences().values().iterator(); while (it.hasNext()) { Sequence sequence = (Sequence)it.next(); if ((defaultSequenceClone != null) && (sequence == getDefaultSequence())) { sequencesDeepClone.put(defaultSequenceClone.getName(), defaultSequenceClone); } else { Sequence sequenceClone = (Sequence)sequence.clone(); if (sequenceClone instanceof DefaultSequence) { if (!((DefaultSequence)sequenceClone).hasPreallocationSize()) { continue; } } sequencesDeepClone.put(sequenceClone.getName(), sequenceClone); } } this.setSequences(sequencesDeepClone); } }
/** * INTERNAL: * Adds descriptors plus sequencing info found on the project to the session. */ protected void addProjectToSession(ServerSession session, Project project) { DatasourcePlatform sessionPlatform = (DatasourcePlatform)session.getDatasourceLogin().getDatasourcePlatform(); DatasourcePlatform projectPlatform = (DatasourcePlatform)project.getDatasourceLogin().getDatasourcePlatform(); if (!sessionPlatform.hasDefaultSequence() && projectPlatform.hasDefaultSequence()) { sessionPlatform.setDefaultSequence(projectPlatform.getDefaultSequence()); } if ((sessionPlatform.getSequences() == null) || sessionPlatform.getSequences().isEmpty()) { if ((projectPlatform.getSequences() != null) && !projectPlatform.getSequences().isEmpty()) { sessionPlatform.setSequences(projectPlatform.getSequences()); } } else { if ((projectPlatform.getSequences() != null) && !projectPlatform.getSequences().isEmpty()) { Iterator itProjectSequences = projectPlatform.getSequences().values().iterator(); while (itProjectSequences.hasNext()) { Sequence sequence = (Sequence)itProjectSequences.next(); if (!sessionPlatform.getSequences().containsKey(sequence.getName())) { sessionPlatform.addSequence(sequence); } } } } session.addDescriptors(project); }
/** * Copy the state into the new platform. */ public void copyInto(Platform platform) { if (!(platform instanceof DatasourcePlatform)) { return; } DatasourcePlatform datasourcePlatform = (DatasourcePlatform)platform; datasourcePlatform.setTableQualifier(getTableQualifier()); datasourcePlatform.setTimestampQuery(this.timestampQuery); datasourcePlatform.setConversionManager(getConversionManager()); if (hasDefaultSequence()) { datasourcePlatform.setDefaultSequence(getDefaultSequence()); } datasourcePlatform.setSequences(getSequences()); datasourcePlatform.sequencesAfterCloneCleanup(); }