/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.sa.descriptor;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
public class ServiceFieldTable extends ServiceItem implements ServiceItemContainer {
private static final long serialVersionUID = 4835390430819956676L;
private Map<String, ServiceField> items = new LinkedHashMap<>();
public ServiceFieldTable() {
setType(TYPE_TABLE);
}
@Override
public void setType(String type) {
if (!StringUtils.equals(type, TYPE_TABLE)) {
throw new IllegalArgumentException("Invalid type for table: " + type);
}
super.setType(type);
}
public void addItem(ServiceField item) {
items.put(item.getName(), item);
}
@Override
public Map<String, ServiceField> getItems() {
return items;
}
public List<ServiceField> getFieldList() {
return new ArrayList<ServiceField>(items.values());
}
public List<ServiceField> getAssetFields() {
return ServiceField.getAssetFields(this);
}
public Set<String> getAssetTypes() {
return ServiceField.getAssetTypes(this);
}
@Override
public String toString() {
ToStringBuilder builder = new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE);
toString(builder);
builder.append("items", items);
return builder.toString();
}
}