litesoft
@ HEAD
litesoft / trunk / Java / core / Anywhere / src / org / litesoft / uispecification / ErrorChangeState.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.uispecification; public enum ErrorChangeState { NoErrors_NoChanges( false, false ) { @Override public ErrorChangeState setErrors( boolean pYes ) { return pYes ? Errors_NoChanges : NoErrors_NoChanges; } @Override public ErrorChangeState setChanges( boolean pYes ) { return pYes ? NoErrors_Changes : NoErrors_NoChanges; } @Override public ErrorChangeState mergeToTrueFrom( ErrorChangeProvider pProvider ) { return setErrors( pProvider.isErrored() ).setChanges( pProvider.isChanged() ); } }, // NoErrors_Changes( false, true ) { @Override public ErrorChangeState setErrors( boolean pYes ) { return pYes ? Errors_Changes : NoErrors_Changes; } @Override public ErrorChangeState setChanges( boolean pYes ) { return pYes ? NoErrors_Changes : NoErrors_NoChanges; } @Override public ErrorChangeState mergeToTrueFrom( ErrorChangeProvider pProvider ) { return setErrors( pProvider.isErrored() ); } },// Errors_NoChanges( true, false ) { @Override public ErrorChangeState setErrors( boolean pYes ) { return pYes ? Errors_NoChanges : NoErrors_NoChanges; } @Override public ErrorChangeState setChanges( boolean pYes ) { return pYes ? Errors_Changes : Errors_NoChanges; } @Override public ErrorChangeState mergeToTrueFrom( ErrorChangeProvider pProvider ) { return setChanges( pProvider.isChanged() ); } },// Errors_Changes( true, true ) { @Override public ErrorChangeState setErrors( boolean pYes ) { return pYes ? Errors_Changes : NoErrors_Changes; } @Override public ErrorChangeState setChanges( boolean pYes ) { return pYes ? Errors_Changes : Errors_NoChanges; } @Override public ErrorChangeState mergeToTrueFrom( ErrorChangeProvider pProvider ) { return this; } }; private boolean mErrors, mChanges; private ErrorChangeState( boolean pErrors, boolean pChanges ) { mErrors = pErrors; mChanges = pChanges; } public boolean hasErrors() { return mErrors; } public boolean hasChanges() { return mChanges; } abstract public ErrorChangeState setErrors( boolean pYes ); abstract public ErrorChangeState setChanges( boolean pYes ); abstract public ErrorChangeState mergeToTrueFrom( ErrorChangeProvider pProvider ); } |