package net.sourceforge.fidocadj.primitives;
/** Class MacroDesc provides a standard description of the macro. It provides
its name, its description and its category
<pre>
This file is part of FidoCadJ.
FidoCadJ is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
FidoCadJ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with FidoCadJ. If not,
@see <a href=http://www.gnu.org/licenses/>http://www.gnu.org/licenses/</a>.
Copyright 2008-2013 by Davide Bucci
</pre>
*/
public class MacroDesc
{
public String name; // The one which is shown
public String key; // Unequivocally used to identify the macro
public String description; // The list of commands included in the macro
public String category; // The category on which the macro is put
public String library; // The library name
public String filename; // The library file name
public int level; // The level (0: macro 1:category 2:library)
// The library file name is usually identical to the library name, except
// when an existing library is already present with a different filename.
// This is a legacy from previous versions of FidoCadJ.
/** Standard constructor. Give the macro's name, description and category.
@param ke the key to be used.
@param na the name of the macro.
@param de the description of the macro (the list of commands).
@param cat the category of the macro.
@param lib the library name (prefix).
@param fn the library file name.
*/
public MacroDesc(String ke, String na, String de, String cat,
String lib, String fn)
{
name = na;
key=ke;
description = de;
category = cat;
library = lib;
filename = fn;
level = 0;
}
/** Provide a text describing the macro, usually for debug purposes.
@return the description.
*/
public String toString()
{
String s;
switch (level) {
case 1:
s=category;
break;
case 2:
s=library;
break;
case 0:
default:
s=name;
break;
}
return s.trim();
}
}