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;
            }
            }
        }
Exemplo n.º 2
0
 public virtual void SetStructureStrategy(Net.Vpc.Upa.Persistence.StructureStrategy structureStrategy)
 {
     this.structureStrategy = structureStrategy;
 }
Exemplo n.º 3
0
        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);
        }