All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ooaofooa.datatypes.ModelEventNotification Maven / Gradle / Ivy

package ooaofooa.datatypes;


import io.ciera.runtime.summit.exceptions.XtumlException;
import io.ciera.runtime.summit.types.IXtumlType;

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public enum ModelEventNotification implements IXtumlType {

    UNINITIALIZED_ENUM( -1 ),
    DELTA_ATTRIBUTE_CHANGE( 0 ),
    DELTA_DELETE( 1 ),
    DELTA_ELEMENT_RELATED( 2 ),
    DELTA_ELEMENT_UNRELATED( 3 ),
    DELTA_NEW( 4 ),
    MASK_ALL_DELTAS( 5 ),
    MASK_ALL_EVENTS( 6 ),
    MASK_NO_DELTAS( 7 ),
    MASK_NO_EVENTS( 8 ),
    MODEL_ELEMENT_CHANGED( 9 ),
    MODEL_ELEMENT_LOADED( 10 ),
    MODEL_ELEMENT_PRE_DELETE( 11 ),
    MODEL_ELEMENT_PRE_RELOAD( 12 ),
    MODEL_ELEMENT_RELOAD( 13 ),
    MODEL_ELEMENT_UNLOADED( 14 ),
    MODEL_EXECUTION_STOPPED( 15 ),
    UNKNOWN( 16 );

    private final int value;

    ModelEventNotification() {
        value = -1;
    }

    ModelEventNotification( int value ) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }

    @Override
    public boolean equality( IXtumlType value ) throws XtumlException {
        if (value instanceof ModelEventNotification) {
            return null != value && this.value == ((ModelEventNotification)value).getValue();
        }
        else return false;
    }

    @Override
    public String serialize() {
        return Integer.toString(value);
    }

    public static ModelEventNotification deserialize(Object o) throws XtumlException {
        if (o instanceof ModelEventNotification) {
            return (ModelEventNotification)o;
        }
        else if (o instanceof Integer) {
            return valueOf((int)o);
        }
        else if (o instanceof String) {
            try {
                return valueOf(Integer.parseInt((String)o));
            }
            catch (NumberFormatException e1) {
                Matcher m = Pattern.compile("([A-Za-z][A-Za-z0-9_]*)::([A-Za-z][A-Za-z0-9_]*)").matcher((String)o);
                if (m.matches() && "modeleventnotification".equals(m.group(1).toLowerCase())) {
                    try {
                        return Enum.valueOf(ModelEventNotification.class, m.group(2).toUpperCase());
                    } catch (IllegalArgumentException e2) {/* do nothing */}
                }
            }
        }
        throw new XtumlException("Cannot deserialize value: " + o != null ? o.toString() : "null");
    }

    public static ModelEventNotification valueOf(int value) {
        switch( value ) {
        case 0:
            return DELTA_ATTRIBUTE_CHANGE;
        case 1:
            return DELTA_DELETE;
        case 2:
            return DELTA_ELEMENT_RELATED;
        case 3:
            return DELTA_ELEMENT_UNRELATED;
        case 4:
            return DELTA_NEW;
        case 5:
            return MASK_ALL_DELTAS;
        case 6:
            return MASK_ALL_EVENTS;
        case 7:
            return MASK_NO_DELTAS;
        case 8:
            return MASK_NO_EVENTS;
        case 9:
            return MODEL_ELEMENT_CHANGED;
        case 10:
            return MODEL_ELEMENT_LOADED;
        case 11:
            return MODEL_ELEMENT_PRE_DELETE;
        case 12:
            return MODEL_ELEMENT_PRE_RELOAD;
        case 13:
            return MODEL_ELEMENT_RELOAD;
        case 14:
            return MODEL_ELEMENT_UNLOADED;
        case 15:
            return MODEL_EXECUTION_STOPPED;
        case 16:
            return UNKNOWN;
        default:
            return UNINITIALIZED_ENUM;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy