/** * Sets the format of the input instances. * * @param instanceInfo an Instances object containing the input instance structure (any instances * contained in the object are ignored - only the structure is required). * @return true if the outputFormat may be collected immediately * @throws Exception if the format couldn't be set successfully */ public boolean setInputFormat(Instances instanceInfo) throws Exception { super.setInputFormat(instanceInfo); m_Insert.setUpper(instanceInfo.numAttributes()); Instances outputFormat = new Instances(instanceInfo, 0); Attribute newAttribute = null; switch (m_AttributeType) { case Attribute.NUMERIC: newAttribute = new Attribute(m_Name); break; case Attribute.NOMINAL: newAttribute = new Attribute(m_Name, m_Labels); break; case Attribute.STRING: newAttribute = new Attribute(m_Name, (FastVector) null); break; case Attribute.DATE: newAttribute = new Attribute(m_Name, m_DateFormat); break; default: throw new IllegalArgumentException("Unknown attribute type in Add"); } if ((m_Insert.getIndex() < 0) || (m_Insert.getIndex() > getInputFormat().numAttributes())) { throw new IllegalArgumentException("Index out of range"); } outputFormat.insertAttributeAt(newAttribute, m_Insert.getIndex()); setOutputFormat(outputFormat); // all attributes, except index of added attribute // (otherwise the length of the input/output indices differ) Range atts = new Range(m_Insert.getSingleIndex()); atts.setInvert(true); atts.setUpper(outputFormat.numAttributes() - 1); initOutputLocators(outputFormat, atts.getSelection()); return true; }
/** * Gets the index of the attribute converted. * * @return the index of the attribute */ public String getAttributeIndex() { return m_AttIndex.getSingleIndex(); }
/** * Get the index of the attribute used. * * @return the index of the attribute */ public String getAttributeIndex() { return m_Insert.getSingleIndex(); }
/** * Get the index of the second value used. * * @return the index of the second value */ public String getSecondValueIndex() { return m_SecondIndex.getSingleIndex(); }
/** * Get the index of the first value used. * * @return the index of the first value */ public String getFirstValueIndex() { return m_FirstIndex.getSingleIndex(); }
/** * Get the index of the class attribute. * * @return the index of the class attribute */ public String getClassIndex() { return m_ClassIndex.getSingleIndex(); }