protected void addOptimisticLockingLines(NonreflectiveMethodDefinition method, OptimisticLockingPolicy policy) { String policyClassName = policy.getClass().getName(); String packageName = policyClassName.substring(0, policyClassName.lastIndexOf('.')); if (packageName.equals("org.eclipse.persistence.descriptors")) { policyClassName = Helper.getShortClassName(policy); } method.addLine(policyClassName + " lockingPolicy = new " + policyClassName + "();"); if (policy instanceof SelectedFieldsLockingPolicy) { SelectedFieldsLockingPolicy fieldPolicy = (SelectedFieldsLockingPolicy)policy; for (Enumeration fieldsEnum = fieldPolicy.getLockFields().elements(); fieldsEnum.hasMoreElements();) { DatabaseField field = (DatabaseField)fieldsEnum.nextElement(); method.addLine("lockingPolicy.addLockFieldName(\"" + field.getQualifiedName() + "\");"); } } else if (policy instanceof VersionLockingPolicy) { VersionLockingPolicy versionPolicy = (VersionLockingPolicy)policy; method.addLine("lockingPolicy.setWriteLockFieldName(\"" + versionPolicy.getWriteLockField().getQualifiedName() + "\");"); if (versionPolicy.isStoredInObject()) { method.addLine("lockingPolicy.storeInObject();"); } if (policy instanceof TimestampLockingPolicy) { TimestampLockingPolicy timestampPolicy = (TimestampLockingPolicy)policy; if (timestampPolicy.usesLocalTime()) { method.addLine("lockingPolicy.useLocalTime();"); } } } method.addLine("descriptor.setOptimisticLockingPolicy(lockingPolicy);"); }
protected void addOptimisticLockingLines(NonreflectiveMethodDefinition method, OptimisticLockingPolicy policy) { String policyClassName = policy.getClass().getName(); String packageName = policyClassName.substring(0, policyClassName.lastIndexOf('.')); if (packageName.equals("org.eclipse.persistence.descriptors")) { policyClassName = Helper.getShortClassName(policy); } method.addLine(policyClassName + " lockingPolicy = new " + policyClassName + "();"); if (policy instanceof SelectedFieldsLockingPolicy) { SelectedFieldsLockingPolicy fieldPolicy = (SelectedFieldsLockingPolicy)policy; for ( DatabaseField field : fieldPolicy.getLockFields()) { method.addLine("lockingPolicy.addLockFieldName(\"" + field.getQualifiedName() + "\");"); } } else if (policy instanceof VersionLockingPolicy) { VersionLockingPolicy versionPolicy = (VersionLockingPolicy)policy; method.addLine("lockingPolicy.setWriteLockFieldName(\"" + versionPolicy.getWriteLockField().getQualifiedName() + "\");"); if (versionPolicy.isStoredInObject()) { method.addLine("lockingPolicy.storeInObject();"); } if (policy instanceof TimestampLockingPolicy) { TimestampLockingPolicy timestampPolicy = (TimestampLockingPolicy)policy; if (timestampPolicy.usesLocalTime()) { method.addLine("lockingPolicy.useLocalTime();"); } } } method.addLine("descriptor.setOptimisticLockingPolicy(lockingPolicy);"); }
protected void addOptimisticLockingLines(NonreflectiveMethodDefinition method, OptimisticLockingPolicy policy) { String policyClassName = policy.getClass().getName(); String packageName = policyClassName.substring(0, policyClassName.lastIndexOf('.')); if (packageName.equals("org.eclipse.persistence.descriptors")) { policyClassName = Helper.getShortClassName(policy); } method.addLine(policyClassName + " lockingPolicy = new " + policyClassName + "();"); if (policy instanceof SelectedFieldsLockingPolicy) { SelectedFieldsLockingPolicy fieldPolicy = (SelectedFieldsLockingPolicy)policy; for ( DatabaseField field : fieldPolicy.getLockFields()) { method.addLine("lockingPolicy.addLockFieldName(\"" + field.getQualifiedName() + "\");"); } } else if (policy instanceof VersionLockingPolicy) { VersionLockingPolicy versionPolicy = (VersionLockingPolicy)policy; method.addLine("lockingPolicy.setWriteLockFieldName(\"" + versionPolicy.getWriteLockField().getQualifiedName() + "\");"); if (versionPolicy.isStoredInObject()) { method.addLine("lockingPolicy.storeInObject();"); } if (policy instanceof TimestampLockingPolicy) { TimestampLockingPolicy timestampPolicy = (TimestampLockingPolicy)policy; if (timestampPolicy.usesLocalTime()) { method.addLine("lockingPolicy.useLocalTime();"); } } } method.addLine("descriptor.setOptimisticLockingPolicy(lockingPolicy);"); }
/** * INTERNAL: * returns the initial locking value */ protected Object getInitialWriteValue(AbstractSession session) { if (usesLocalTime()) { return new Timestamp(System.currentTimeMillis()); } if (usesServerTime()) { AbstractSession readSession = session.getSessionForClass(getDescriptor().getJavaClass()); while (readSession.isUnitOfWork()) { readSession = ((UnitOfWorkImpl)readSession).getParent().getSessionForClass(getDescriptor().getJavaClass()); } return readSession.getDatasourceLogin().getDatasourcePlatform().getTimestampFromServer(session, readSession.getName()); } return null; }
/** * INTERNAL: * returns the initial locking value */ protected Object getInitialWriteValue(AbstractSession session) { if (usesLocalTime()) { return new Timestamp(System.currentTimeMillis()); } if (usesServerTime()) { AbstractSession readSession = session.getSessionForClass(getDescriptor().getJavaClass()); while (readSession.isUnitOfWork()) { readSession = ((UnitOfWorkImpl)readSession).getParent().getSessionForClass(getDescriptor().getJavaClass()); } return readSession.getDatasourceLogin().getDatasourcePlatform().getTimestampFromServer(session, readSession.getName()); } return null; }
/** * INTERNAL: * returns the initial locking value */ protected Object getInitialWriteValue(AbstractSession session) { if (usesLocalTime()) { return new Timestamp(System.currentTimeMillis()); } if (usesServerTime()) { AbstractSession readSession = session.getSessionForClass(getDescriptor().getJavaClass()); while (readSession.isUnitOfWork()) { readSession = ((UnitOfWorkImpl)readSession).getParent().getSessionForClass(getDescriptor().getJavaClass()); } return readSession.getDatasourceLogin().getDatasourcePlatform().getTimestampFromServer(session, readSession.getName()); } return null; }