/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.vdb; import java.util.concurrent.atomic.AtomicReference; import org.teiid.designer.vdb.Vdb.Event; import org.teiid.designer.vdb.manifest.ImportVdbElement; /** * * * @since 8.0 */ public class VdbImportVdbEntry extends VdbUnit { final AtomicReference<String> version = new AtomicReference<String>(); final AtomicReference<Boolean> importDataPolicies = new AtomicReference<Boolean>(); /** * @param vdb * @param importVdbName */ public VdbImportVdbEntry(Vdb vdb, String importVdbName) { setVdb(vdb); setName(importVdbName); this.version.set("1"); this.importDataPolicies.set(false); } /** * @param vdb * @param element */ public VdbImportVdbEntry(Vdb vdb, ImportVdbElement element) { this(vdb, element.getName()); this.version.set(element.getVersion()); this.importDataPolicies.set(element.isImportDataPolicies()); } /** * @return return the version */ public String getVersion() { return version.get(); } /** * Modify the version attribute * * @param version */ public void setVersion(String version) { final String oldVersion = this.version.get(); if (version.equals(oldVersion)) return; this.version.set(version); setModified(this, Event.IMPORT_VDB_ENTRY_VERSION, oldVersion, version); } /** * @return the import data policies flag */ public boolean isImportDataPolicies() { return importDataPolicies.get(); } /** * Modify the import data policies flag * * @param importDataPolicies */ public void setImportDataPolicies(boolean importDataPolicies) { final boolean oldImportDataPolicies = this.importDataPolicies.get(); if (importDataPolicies == oldImportDataPolicies) return; this.importDataPolicies.set(importDataPolicies); setModified(this, Event.IMPORT_VDB_ENTRY_DATA_POLICY, oldImportDataPolicies, importDataPolicies); } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((this.importDataPolicies == null) ? 0 : this.importDataPolicies.hashCode()); result = prime * result + ((this.version == null) ? 0 : this.version.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; VdbImportVdbEntry other = (VdbImportVdbEntry)obj; if (this.importDataPolicies == null) { if (other.importDataPolicies != null) return false; } else if (!this.importDataPolicies.equals(other.importDataPolicies)) return false; if (this.version == null) { if (other.version != null) return false; } else if (!this.version.equals(other.version)) return false; return true; } @Override public VdbImportVdbEntry clone() { VdbImportVdbEntry clone = new VdbImportVdbEntry(getVdb(), getName()); cloneVdbObject(clone); clone.setImportDataPolicies(isImportDataPolicies()); clone.setVersion(getVersion()); return clone; } }