package org.araqne.logdb.query.parser; import org.araqne.logdb.AbstractQueryCommandParser; import org.araqne.logdb.MetadataService; import org.araqne.logdb.QueryCommand; import org.araqne.logdb.QueryContext; import org.araqne.logdb.query.command.SystemCommand; public class SystemCommandParser extends AbstractQueryCommandParser { private String commandName; private MetadataService metadataService; public SystemCommandParser(String commandName, MetadataService metadataService) { this.commandName = commandName; this.metadataService = metadataService; help.setCommandName(commandName); setDescriptions("Query system dictionary", "시스템 메타데이터를 쿼리합니다."); } @Override public String getCommandName() { return commandName; } @Override public QueryCommand parse(QueryContext context, String commandString) { String queryString = commandString.substring(getCommandName().length()).trim(); String type = queryString.split(" ")[0].trim(); int p = queryString.indexOf(" "); if (p < 0) queryString = ""; else queryString = queryString.substring(p); metadataService.verify(context, type, queryString); return new SystemCommand(commandName, context, type, queryString, metadataService); } }