CategoricalValue.java
- package org.thegalactic.context.constraint.categorical;
- /*
- * CategoricalValue.java
- *
- * Copyright: 2016 The Galactic Organization, France
- *
- * License: http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html CeCILL-B license
- *
- * This file is part of java-lattices.
- * You can redistribute it and/or modify it under the terms of the CeCILL-B license.
- */
- /**
- * Categorical Value.
- */
- public final class CategoricalValue {
- /**
- * Data.
- */
- private Object data;
- /**
- * Attribute.
- */
- private final CategoricalAttribute attribute;
- /**
- * Create a new CategoricalValue.
- *
- * @param data Object
- * @param attribute CategoricalAttribute
- *
- * @return a new CategoricalValue
- */
- static CategoricalValue create(final Object data, final CategoricalAttribute attribute) {
- return new CategoricalValue(data, attribute);
- }
- /**
- * This class is nod designed to be publicly instantiated.
- *
- * @param object Object
- * @param attribute CategoricalAttribute
- */
- private CategoricalValue(final Object object, final CategoricalAttribute attribute) {
- this.setData(object);
- this.attribute = attribute;
- }
- /**
- * Get the underlying attribute.
- *
- * @return the underlying attribute
- */
- public CategoricalAttribute getAttribute() {
- return this.attribute;
- }
- /**
- * Get the underlying model.
- *
- * @return the underlying model
- */
- public CategoricalModel getModel() {
- return this.attribute.getModel();
- }
- /**
- * Get the underlying data.
- *
- * @return the underlying data
- */
- public Object getData() {
- return this.data;
- }
- /**
- * Set the underlying data.
- *
- * @param data the underlying data
- *
- * @return this for chaining
- */
- public CategoricalValue setData(final Object data) {
- this.data = data;
- return this;
- }
- /**
- * Get the index of this value relatively to its model.
- *
- * @return the index of this value
- */
- public int index() {
- return this.attribute.startIndex() + this.attribute.indexOf(this);
- }
- /**
- * Returns a string representation of the data.
- *
- * @return a string representation of the data.
- */
- @Override
- public String toString() {
- final String string = this.data.toString();
- if (string.contains(" ") || string.contains("\"")) {
- return "\"" + string.replace("\"", "\\\"") + "\"";
- } else {
- return string;
- }
- }
- }