/** * Gets the label of the token * * @param parser The parser that called the Object. * @param args The arguments passed. * @return the name of the token. * @throws ParserException when an error occurs. */ private Object getLabel(Parser parser, List<Object> args) throws ParserException { Token token; if (args.size() == 1) { if (!MapTool.getParser().isMacroTrusted()) { throw new ParserException(I18N.getText("macro.function.general.noPermOther", "getLabel")); } token = FindTokenFunctions.findToken(args.get(0).toString(), null); if (token == null) { throw new ParserException( I18N.getText( "macro.function.general.unknownToken", "getLabel", args.get(0).toString())); } } else if (args.isEmpty()) { MapToolVariableResolver res = (MapToolVariableResolver) parser.getVariableResolver(); token = res.getTokenInContext(); if (token == null) { throw new ParserException( I18N.getText("macro.function.general.noImpersonated", "getLabel")); } } else { throw new ParserException( I18N.getText("macro.function.general.tooManyParam", "getLabel", 1, args.size())); } return getLabel(token); }
/** * Sets the label of the token. * * @param parser The parser that called the Object. * @param args The arguments passed. * @return the new name of the token. * @throws ParserException when an error occurs. */ private Object setLabel(Parser parser, List<Object> args) throws ParserException { Token token; if (args.size() == 2) { if (!MapTool.getParser().isMacroTrusted()) { throw new ParserException(I18N.getText("macro.function.general.noPermOther", "setLabel")); } token = FindTokenFunctions.findToken(args.get(1).toString(), null); if (token == null) { throw new ParserException( I18N.getText( "macro.function.general.unknownToken", "setLabel", args.get(1).toString())); } } else if (args.size() == 1) { MapToolVariableResolver res = (MapToolVariableResolver) parser.getVariableResolver(); token = res.getTokenInContext(); if (token == null) { throw new ParserException( I18N.getText("macro.function.general.noImpersonated", "setLabel")); } } else if (args.isEmpty()) { throw new ParserException( I18N.getText("macro.function.general.notEnoughParam", "setLabel", 1, args.size())); } else { throw new ParserException( I18N.getText("macro.function.general.tooManyParam", "setLabel", 2, args.size())); } setLabel(token, args.get(0).toString()); Zone zone = MapTool.getFrame().getCurrentZoneRenderer().getZone(); MapTool.serverCommand().putToken(zone.getId(), token); zone.putToken(token); return args.get(0); }