/* * 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); } }