package org.modeldriven.fuml.io; import java.util.ArrayList; import java.util.List; import org.modeldriven.fuml.assembly.ElementAssemblerEventListener; import org.modeldriven.fuml.xmi.validation.ValidationEventListener; public abstract class ElementReader { protected List<ValidationEventListener> validationEventListeners; protected List<ElementAssemblerEventListener> elementAssemblerEventListeners; protected List<ElementReaderEventListener> elementReaderEventListeners; protected boolean validateExternalReferences = true; protected boolean assembleExternalReferences = true; public void addValidationEventListener(ValidationEventListener eventListener) { if (validationEventListeners == null) validationEventListeners = new ArrayList<ValidationEventListener>(); this.validationEventListeners.add(eventListener); } public void removeValidationEventListener(ValidationEventListener eventListener) { if (validationEventListeners == null) return; this.validationEventListeners.remove(eventListener); } public void addElementAssemblerEventListener(ElementAssemblerEventListener eventListener) { if (elementAssemblerEventListeners == null) elementAssemblerEventListeners = new ArrayList<ElementAssemblerEventListener>(); this.elementAssemblerEventListeners.add(eventListener); } public void removeElementAssemblerEventListener(ElementAssemblerEventListener eventListener) { if (elementAssemblerEventListeners == null) return; this.elementAssemblerEventListeners.remove(eventListener); } public void addElementReaderEventListener(ElementReaderEventListener eventListener) { if (elementReaderEventListeners == null) elementReaderEventListeners = new ArrayList<ElementReaderEventListener>(); this.elementReaderEventListeners.add(eventListener); } public void removeElementReaderEventListener(ElementReaderEventListener eventListener) { if (elementReaderEventListeners == null) return; this.elementReaderEventListeners.remove(eventListener); } public boolean isValidateExternalReferences() { return validateExternalReferences; } public void setValidateExternalReferences(boolean validateExternalReferences) { this.validateExternalReferences = validateExternalReferences; } public boolean isAssembleExternalReferences() { return assembleExternalReferences; } public void setAssembleExternalReferences(boolean assembleExternalReferences) { this.assembleExternalReferences = assembleExternalReferences; } }