/* * (c) Copyright 2010-2011 AgileBirds * * This file is part of OpenFlexo. * * OpenFlexo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * OpenFlexo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>. * */ package org.openflexo.foundation.cg.version; import java.util.Comparator; import java.util.Date; import org.openflexo.foundation.Inspectors; import org.openflexo.foundation.cg.CGObject; import org.openflexo.foundation.cg.GeneratedOutput; import org.openflexo.foundation.cg.GenerationRepository; import org.openflexo.foundation.rm.cg.GenerationStatus; import org.openflexo.foundation.xml.GeneratedCodeBuilder; import org.openflexo.foundation.xml.GeneratedSourcesBuilder; public class CGRelease extends CGObject { private String _name; private Date _date; private String _userId; private GenerationRepository _repository; private CGVersionIdentifier _versionIdentifier; /** * Create a new release. */ public CGRelease(GeneratedCodeBuilder builder) { this(builder.generatedCode); initializeDeserialization(builder); } /** * Create a new release. */ public CGRelease(GeneratedSourcesBuilder builder) { this(builder.generatedSources); initializeDeserialization(builder); } public CGRelease(GeneratedOutput generatedCode) { super(generatedCode); } public CGRelease(GenerationRepository repository) { this(repository.getGeneratedCode()); setCGRepository(repository); } @Override public GenerationStatus getGenerationStatus() { // Not applicable return null; } @Override public boolean hasGenerationErrors() { // Not applicable return false; } @Override public boolean needsModelReinjection() { // Not applicable return false; } @Override public boolean isContainedIn(CGObject obj) { return obj == getCGRepository(); } @Override public boolean isEnabled() { // Not applicable return false; } @Override public boolean needsRegeneration() { // Not applicable return false; } @Override public String getClassNameKey() { return "generated_code_release"; } @Override public String getFullyQualifiedName() { return getCGRepository().getFullyQualifiedName() + getVersionIdentifier(); } @Override public String getInspectorName() { return Inspectors.GENERATORS.CG_RELEASE_INSPECTOR; } public Date getDate() { return _date; } public void setDate(Date date) { _date = date; } @Override public String getName() { return _name; } @Override public void setName(String name) { _name = name; } public GenerationRepository getCGRepository() { return _repository; } public void setCGRepository(GenerationRepository repository) { _repository = repository; } public String getUserId() { return _userId; } public void setUserId(String userId) { _userId = userId; } public CGVersionIdentifier getVersionIdentifier() { return _versionIdentifier; } public void setVersionIdentifier(CGVersionIdentifier versionIdentifier) { _versionIdentifier = versionIdentifier; _versionIdentifier.type = CGVersionIdentifier.VersionType.Release; } public static final Comparator<CGRelease> COMPARATOR = new Comparator<CGRelease>() { @Override public int compare(CGRelease o1, CGRelease o2) { return CGVersionIdentifier.COMPARATOR.compare(o1.getVersionIdentifier(), o2.getVersionIdentifier()); } }; }