// ============================================================================
//
// Copyright (C) 2006-2012 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.repository.model;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.repository.i18n.Messages;
/**
* DOC ycbai class global comment. Detailled comment
*/
public class ItemReferenceBean {
public final static String EMPTY_STRING = ""; //$NON-NLS-1$
public final static String SPACE = " "; //$NON-NLS-1$
public final static ItemReferenceBean[] EMPTY_ARRAY = new ItemReferenceBean[0];
private String itemName;
private String referenceItemName;
private String itemVersion;
private boolean isItemDeleted = false;
private String referenceItemVersion;
private String referenceItemPath;
private String referenceProjectName;
private ERepositoryObjectType itemType;
private ERepositoryObjectType referenceItemType;
private boolean isReferenceItemDeleted = false;
private boolean isHost = false;
private int nodeNum = 1;
private ItemReferenceBean parent;
private List<ItemReferenceBean> children = new ArrayList<ItemReferenceBean>();
public int getNodeNum() {
return this.nodeNum;
}
public void addNodeNum() {
this.nodeNum = this.nodeNum + 1;
}
public ItemReferenceBean getParent() {
return this.parent;
}
public void setParent(ItemReferenceBean parent) {
this.parent = parent;
}
public List<ItemReferenceBean> getChildren() {
return this.children;
}
public void addChild(ItemReferenceBean child) {
this.children.add(child);
}
public void addChildren(List<ItemReferenceBean> children) {
this.children.addAll(children);
}
public String getItemName() {
return this.itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
public String getReferenceItemName() {
return this.referenceItemName;
}
public void setReferenceItemName(String referenceItemName) {
this.referenceItemName = referenceItemName;
}
public String getItemVersion() {
return this.itemVersion;
}
public void setItemVersion(String itemVersion) {
this.itemVersion = itemVersion;
}
public String getReferenceItemVersion() {
return this.referenceItemVersion;
}
public void setReferenceItemVersion(String referenceItemVersion) {
this.referenceItemVersion = referenceItemVersion;
}
public String getReferenceItemPath() {
return this.referenceItemPath;
}
public void setReferenceItemPath(String referenceItemPath) {
this.referenceItemPath = referenceItemPath;
}
public String getReferenceProjectName() {
return this.referenceProjectName;
}
public void setReferenceProjectName(String referenceProjectName) {
this.referenceProjectName = referenceProjectName;
}
public ERepositoryObjectType getItemType() {
return this.itemType;
}
public void setItemType(ERepositoryObjectType itemType) {
this.itemType = itemType;
}
public boolean isItemDeleted() {
return this.isItemDeleted;
}
public void setItemDeleted(boolean isItemDeleted) {
this.isItemDeleted = isItemDeleted;
}
public ERepositoryObjectType getReferenceItemType() {
return this.referenceItemType;
}
public void setReferenceItemType(ERepositoryObjectType referenceItemType) {
this.referenceItemType = referenceItemType;
}
public boolean isReferenceItemDeleted() {
return this.isReferenceItemDeleted;
}
public void setReferenceItemDeleted(boolean isReferenceItemDeleted) {
this.isReferenceItemDeleted = isReferenceItemDeleted;
}
public boolean isHost() {
return this.isHost;
}
public void setHost(boolean isHost) {
this.isHost = isHost;
}
public String getWholeItemName() {
return itemName + SPACE + itemVersion;
}
public String getWholeRefItemName() {
if (isReferenceItemDeleted) {
return referenceItemName + SPACE + referenceItemVersion
+ " (" + Messages.getString("ItemReferenceDialog.deletedInfor") + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
} else {
String prefix = EMPTY_STRING;
if (StringUtils.isNotEmpty(referenceItemPath)) {
prefix = referenceItemPath + File.separator;
}
return prefix + referenceItemName + SPACE + referenceItemVersion;
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((this.itemName == null) ? 0 : this.itemName.hashCode());
result = prime * result + ((this.itemType == null) ? 0 : this.itemType.hashCode());
result = prime * result + ((this.itemVersion == null) ? 0 : this.itemVersion.hashCode());
result = prime * result + ((this.referenceItemName == null) ? 0 : this.referenceItemName.hashCode());
result = prime * result + ((this.referenceItemPath == null) ? 0 : this.referenceItemPath.hashCode());
result = prime * result + ((this.referenceItemType == null) ? 0 : this.referenceItemType.hashCode());
result = prime * result + ((this.referenceItemVersion == null) ? 0 : this.referenceItemVersion.hashCode());
result = prime * result + ((this.referenceProjectName == null) ? 0 : this.referenceProjectName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ItemReferenceBean other = (ItemReferenceBean) obj;
if (this.itemName == null) {
if (other.itemName != null)
return false;
} else if (!this.itemName.equals(other.itemName))
return false;
if (this.itemType == null) {
if (other.itemType != null)
return false;
} else if (!this.itemType.equals(other.itemType))
return false;
if (this.itemVersion == null) {
if (other.itemVersion != null)
return false;
} else if (!this.itemVersion.equals(other.itemVersion))
return false;
if (this.referenceItemName == null) {
if (other.referenceItemName != null)
return false;
} else if (!this.referenceItemName.equals(other.referenceItemName))
return false;
if (this.referenceItemPath == null) {
if (other.referenceItemPath != null)
return false;
} else if (!this.referenceItemPath.equals(other.referenceItemPath))
return false;
if (this.referenceItemType == null) {
if (other.referenceItemType != null)
return false;
} else if (!this.referenceItemType.equals(other.referenceItemType))
return false;
if (this.referenceItemVersion == null) {
if (other.referenceItemVersion != null)
return false;
} else if (!this.referenceItemVersion.equals(other.referenceItemVersion))
return false;
if (this.referenceProjectName == null) {
if (other.referenceProjectName != null)
return false;
} else if (!this.referenceProjectName.equals(other.referenceProjectName))
return false;
return true;
}
}