package hu.sztaki.ilab.longneck;
import com.google.common.collect.ImmutableList;
import hu.sztaki.ilab.longneck.process.constraint.ConstraintFlag;
import java.util.List;
/**
*
* @author Peter Molnar <molnar.peter@sztaki.mta.hu>
*/
public class ImmutableFieldImpl extends Field {
private final String name;
private final String value;
private final ImmutableList<ConstraintFlag> flags;
public ImmutableFieldImpl(String name, String value) {
this.name = name;
this.value = value;
flags = new ImmutableList.Builder<ConstraintFlag>().build();
}
public ImmutableFieldImpl(String name, String value, ImmutableList<ConstraintFlag> flags) {
this.name = name;
this.value = value;
this.flags = flags;
}
public ImmutableFieldImpl(Field f) {
name = f.getName();
value = f.getValue();
flags = new ImmutableList.Builder<ConstraintFlag>().addAll(f.getFlags()).build();
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String getValue() {
return value;
}
@Override
public void setValue(String value) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public List<ConstraintFlag> getFlags() {
return flags;
}
@Override
public void setFlags(List<ConstraintFlag> flags) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void addFlag(ConstraintFlag flag) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void removeFlag(ConstraintFlag flag) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean hasFlag(ConstraintFlag flag) {
return flags.contains(flag);
}
@Override
public String toString() {
return String.format("%1$s: %2$s", this.name, this.value);
}
}