public virtual void CommitStorage(Net.Vpc.Upa.Persistence.EntityExecutionContext context) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Persistence.PersistenceStore persistenceStore = context.GetPersistenceStore(); Net.Vpc.Upa.Persistence.StructureStrategy option = persistenceStore.GetConnectionProfile().GetStructureStrategy(); switch (option) { case Net.Vpc.Upa.Persistence.StructureStrategy.DROP: { if (!persistenceStore.IsCreatedStorage()) { persistenceStore.CreateStorage(context); } else { persistenceStore.DropStorage(context); persistenceStore.DropStorage(context); persistenceStore.CreateStorage(context); } break; } case Net.Vpc.Upa.Persistence.StructureStrategy.CREATE: case Net.Vpc.Upa.Persistence.StructureStrategy.SYNCHRONIZE: { if (!persistenceStore.IsCreatedStorage()) { persistenceStore.CreateStorage(context); } break; } case Net.Vpc.Upa.Persistence.StructureStrategy.MANDATORY: { if (!persistenceStore.IsCreatedStorage()) { throw new Net.Vpc.Upa.Exceptions.NoSuchPersistenceUnitException(context.GetPersistenceUnit().GetName()); } // if (!isValidPersistenceUnit()) { // throw new NoSuchPersistenceUnitException(getName(), null); // } break; } case Net.Vpc.Upa.Persistence.StructureStrategy.IGNORE: { //do nothing break; } } }
public virtual void SetStructureStrategy(Net.Vpc.Upa.Persistence.StructureStrategy structureStrategy) { this.structureStrategy = structureStrategy; }
public virtual bool Commit(Net.Vpc.Upa.Persistence.EntityExecutionContext executionContext) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Persistence.StructureStrategy option = persistenceUnitCommitManager.persistenceStore.GetConnectionProfile().GetStructureStrategy(); Net.Vpc.Upa.PersistenceState status = GetObjectStatus(executionContext); switch (option) { case Net.Vpc.Upa.Persistence.StructureStrategy.DROP: case Net.Vpc.Upa.Persistence.StructureStrategy.CREATE: case Net.Vpc.Upa.Persistence.StructureStrategy.SYNCHRONIZE: { switch (status) { case Net.Vpc.Upa.PersistenceState.VALID: { //do nothing break; } case Net.Vpc.Upa.PersistenceState.UNKNOWN: case Net.Vpc.Upa.PersistenceState.DIRTY: { //throw new UPAException(new I18NString("DirtyObject"),object); try { Persist(executionContext, status); } catch (System.Exception e) { throw new Net.Vpc.Upa.Exceptions.UPAException(e, new Net.Vpc.Upa.Types.I18NString("CommitFailed")); } @object.GetProperties().SetString("persistence.PersistenceAction", "ADD"); //info.setPersistenceState(PersistenceState.VALID); return(true); } case Net.Vpc.Upa.PersistenceState.TRANSIENT: { // do nothing break; } } break; } case Net.Vpc.Upa.Persistence.StructureStrategy.MANDATORY: { switch (status) { case Net.Vpc.Upa.PersistenceState.UNKNOWN: { throw new Net.Vpc.Upa.Exceptions.UPAException(new Net.Vpc.Upa.Types.I18NString("MandatoryObject"), @object); } case Net.Vpc.Upa.PersistenceState.VALID: { //do nothing break; } case Net.Vpc.Upa.PersistenceState.DIRTY: { throw new Net.Vpc.Upa.Exceptions.UPAException(new Net.Vpc.Upa.Types.I18NString("DirtyObject"), @object); } case Net.Vpc.Upa.PersistenceState.TRANSIENT: { // do nothing break; } } break; } case Net.Vpc.Upa.Persistence.StructureStrategy.IGNORE: { //do nothing break; } } return(false); }