blob: c32cf881843f36ef09c0ce71ceca1e29eea566f4 [file] [log] [blame]
package org.apache.samoa.instances;
/*
* #%L
* SAMOA
* %%
* Copyright (C) 2014 - 2015 Apache Software Foundation
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
public class InstancesHeader extends Instances {
private static final long serialVersionUID = 1L;
public InstancesHeader(Instances i) {
super(i, 0);
}
public InstancesHeader() {
super();
}
public static String getClassNameString(InstancesHeader context) {
if (context == null) {
return "[class]";
}
return "[class:" + context.classAttribute().name() + "]";
}
public static String getClassLabelString(InstancesHeader context,
int classLabelIndex) {
if ((context == null) || (classLabelIndex >= context.numClasses())) {
return "<class " + (classLabelIndex + 1) + ">";
}
return "<class " + (classLabelIndex + 1) + ":"
+ context.classAttribute().value(classLabelIndex) + ">";
}
// is impervious to class index changes - attIndex is true attribute index
// regardless of class position
public static String getAttributeNameString(InstancesHeader context,
int attIndex) {
if ((context == null) || (attIndex >= context.numAttributes())) {
return "[att " + (attIndex + 1) + "]";
}
int instAttIndex = attIndex < context.classIndex() ? attIndex
: attIndex + 1;
return "[att " + (attIndex + 1) + ":"
+ context.attribute(instAttIndex).name() + "]";
}
public static String getInputAttributeNameString(InstancesHeader context,
int attIndex) {
if ((context == null) || (attIndex >= context.numInputAttributes())) {
return "[att " + (attIndex + 1) + "]";
}
int instAttIndex = attIndex;
return "[att " + (attIndex + 1) + ":"
+ context.inputAttribute(instAttIndex).name() + "]";
}
// is impervious to class index changes - attIndex is true attribute index
// regardless of class position
public static String getNominalValueString(InstancesHeader context,
int attIndex, int valIndex) {
if (context != null) {
int instAttIndex = attIndex < context.classIndex() ? attIndex
: attIndex + 1;
if ((instAttIndex < context.numAttributes())
&& (valIndex < context.attribute(instAttIndex).numValues())) {
return "{val " + (valIndex + 1) + ":"
+ context.attribute(instAttIndex).value(valIndex) + "}";
}
}
return "{val " + (valIndex + 1) + "}";
}
// is impervious to class index changes - attIndex is true attribute index
// regardless of class position
public static String getNumericValueString(InstancesHeader context,
int attIndex, double value) {
if (context != null) {
int instAttIndex = attIndex < context.classIndex() ? attIndex
: attIndex + 1;
if (instAttIndex < context.numAttributes()) {
if (context.attribute(instAttIndex).isDate()) {
return context.attribute(instAttIndex).formatDate(value);
}
}
}
return Double.toString(value);
}
public Attribute inputAttribute(int w) {
return this.instanceInformation.inputAttribute(w);
}
public Attribute outputAttribute(int w) {
return this.instanceInformation.outputAttribute(w);
}
public int numInputAttributes() {
return this.instanceInformation.numInputAttributes();
}
public int numOutputAttributes() {
return this.instanceInformation.numOutputAttributes();
}
public InstanceInformation getInstanceInformation() {
return this.instanceInformation;
}
}