/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.datamodel.types.internal;
import org.apache.commons.lang3.StringUtils;
import de.rcenvironment.core.datamodel.api.DataType;
import de.rcenvironment.core.datamodel.types.api.ShortTextTD;
/**
* Implementation of {@link ShortTextTD}.
* @author Doreen Seider
*/
public class ShortTextTDImpl extends AbstractTypedDatum implements ShortTextTD {
/** Maximum character. */
public static final int MAXIMUM_LENGTH = 140;
private final String shortText;
public ShortTextTDImpl(String shortText) {
super(DataType.ShortText);
if (shortText.length() > MAXIMUM_LENGTH) {
throw new IllegalArgumentException("text exceeds maximum character of 140. it has: " + shortText.length());
}
this.shortText = shortText;
}
@Override
public String getShortTextValue() {
return shortText;
}
@Override
public boolean equals(Object obj) {
if (obj != null && obj instanceof ShortTextTD) {
ShortTextTD other = (ShortTextTD) obj;
return shortText.equals(other.getShortTextValue());
}
return false;
}
@Override
public int hashCode() {
return shortText.hashCode();
}
@Override
public String toString() {
return getShortTextValue();
}
@Override
public String toLengthLimitedString(int maxLength) {
return StringUtils.abbreviate(getShortTextValue(), maxLength);
}
}