You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Karl Wettin (JIRA)" <ji...@apache.org> on 2008/04/19 08:46:22 UTC
[jira] Issue Comment Edited: (MAHOUT-49) ParameterEnumerable
[ https://issues.apache.org/jira/browse/MAHOUT-49?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12590661#action_12590661 ]
karl.wettin edited comment on MAHOUT-49 at 4/18/08 11:45 PM:
-------------------------------------------------------------
Something like this:
{code:java}
public interface ParameterEnumerable {
public abstract int numberOfParameters();
public abstract Enumeration<Parameter> enumerateParameters();
public interface Parameter<T> {
/** @return */
public abstract String name();
/** @return */
public abstract String description();
/** @return */
public abstract Class<T> type();
/** @param stringValue */
public abstract void setStringValue(String stringValue);
/** @return */
public abstract String getStringValue();
/** @param value*/
public abstract void setValue(T value);
/** @return */
public abstract T getValue();
/** @return */
public abstract T defaultValue();
}
}
{code}
was (Author: karl.wettin):
Something like this:
{code:java}
public interface ParameterEnumerable {
public abstract int numberOfParameters();
public abstract Enumeration<Parameter> enumerateParameters();
public interface Parameter<T> {
/** @return */
public abstract String name();
/** @return */
public abstract String description();
/** @return */
public abstract Class<T> type();
/** @param stringValue */
public abstract void setStringValue(String stringValue);
/** @return */
public abstract String getStringValue();
/** @param value*/
public abstract void setValue(T value);
/** @return */
public abstract T getValue();
/** @return */
public abstract T defaultValue();
}
public abstract class AbstractParameter<T> implements Parameter<T> {
private T value;
private String name;
private String description;
private Class<T> type;
private T defaultValue;
protected AbstractParameter(Class<T> type, T value, T defaultValue, String name, String description) {
this.type = type;
this.value = value;
this.defaultValue = defaultValue;
this.name = name;
this.description = description;
}
public String name() {
return name;
}
public String description() {
return description;
}
public Class<T> type() {
return type;
}
public T defaultValue() {
return defaultValue;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
public static class Generalizations {
public static String help(ParameterEnumerable enumerable) {
int numChars = 100; // just to be sure
int longestName = 0;
for (Enumeration<Parameter> parameters = enumerable.enumerateParameters(); parameters.hasMoreElements();) {
Parameter parameter = parameters.nextElement();
int parameterNameLength = parameter.name().length();
if (parameterNameLength > longestName) {
longestName = parameterNameLength;
}
numChars += parameter.description().length();
}
int distanceBetweenNameAndDescription = 4;
numChars += (longestName + distanceBetweenNameAndDescription) * enumerable.numberOfParameters();
StringBuilder sb = new StringBuilder(numChars);
for (Enumeration<Parameter> parameters = enumerable.enumerateParameters(); parameters.hasMoreElements();) {
Parameter parameter = parameters.nextElement();
sb.append(parameter.name());
for (int i = 0; i < longestName - parameter.name().length() + distanceBetweenNameAndDescription; i++) {
sb.append(' ');
}
sb.append(parameter.description());
sb.append('\n');
}
return sb.toString();
}
}
}
{code}
> ParameterEnumerable
> -------------------
>
> Key: MAHOUT-49
> URL: https://issues.apache.org/jira/browse/MAHOUT-49
> Project: Mahout
> Issue Type: New Feature
> Reporter: Karl Wettin
> Assignee: Karl Wettin
> Attachments: MAHOUT-49.txt
>
>
> A utility package used to
> * configure class
> * create default configuration files
> * parse main method arguments
> * produce human readable help
> * getters and setters for value as object and string, for future generic reflection based GUI.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.