org.gjt.sp.jedit.ServiceListHandler Maven / Gradle / Ivy
Go to download
This project aims to build a command line tool that can create
HTML view with syntax highlighted source code.
It uses Jedit syntax highlighting engine and support all languages that are supported in JEdit.
Which are currently: ActionScript, Ada 95, ANTLR, Apache HTTPD, APDL, AppleScript, ASP, Aspect-J, Assembly, AWK, B formal method, Batch, BBj, BCEL, BibTeX, C, C++, C#, CHILL, CIL, COBOL, ColdFusion, CSS, CVS Commit, D, DOxygen, DSSSL, Eiffel, EmbPerl, Erlang, Factor, Fortran, Foxpro, FreeMarker, Fortran, Gettext, Groovy, Haskell, HTML, Icon, IDL, Inform, INI, Inno Setup, Informix 4GL, Interlis, Io, Java, JavaScript, JCL, JHTML, JMK, JSP, Latex, Lilypond, Lisp, LOTOS, Lua, Makefile, Maple, ML, Modula-3, MoinMoin, MQSC, NetRexx, NQC, NSIS2, Objective C, ObjectRexx, Occam, Omnimark, Parrot, Pascal, Patch, Perl, PHP, Pike, PL-SQL, PL/I, Pop11, PostScript, Povray, PowerDynamo, Progress 4GL, Prolog, Properties, PSP, PV-WAVE, Pyrex, Python, REBOL, Redcode, Relax-NG, RelationalView, Rest, Rib, RPM spec, RTF, Ruby, Ruby-HTML, RView, S+, S#, SAS, Scheme, SDL/PL, SGML, Shell Script, SHTML, Smalltalk, SMI MIB, SQR, Squidconf, SVN Commit, Swig, TCL, TeX, Texinfo, TPL, Transact-SQL, UnrealScript, VBScript, Velocity, Verilog, VHDL, XML, XSL, ZPT
The newest version!
/*
* ServiceManager.java - Handles services.xml files in plugins
* :tabSize=8:indentSize=8:noTabs=false:
* :folding=explicit:collapseFolds=1:
*
* Copyright (C) 2003 Slava Pestov
*
* This program 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 2
* of the License, or any later version.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit;
//{{{ Imports
import java.io.*;
import java.net.URL;
import java.util.*;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.helpers.DefaultHandler;
import org.gjt.sp.util.Log;
import org.gjt.sp.util.XMLUtilities;
//}}}
/**
* @since jEdit 4.2pre1
* @author Slava Pestov
* @version $Id: ServiceListHandler.java 12504 2008-04-22 23:12:43Z ezust $
*/
class ServiceListHandler extends DefaultHandler
{
//{{{ resolveEntity() method
public InputSource resolveEntity(String publicId, String systemId)
{
return XMLUtilities.findEntity(systemId, "services.dtd", getClass());
} //}}}
//{{{ characters() method
public void characters(char[] c, int off, int len)
{
String tag = peekElement();
if (tag == "SERVICE")
code.append(c, off, len);
} //}}}
//{{{ startElement() method
public void startElement(String uri, String localName,
String tag, Attributes attrs)
{
tag = pushElement(tag);
serviceName = attrs.getValue("NAME");
serviceClass = attrs.getValue("CLASS");
} //}}}
//{{{ endElement() method
public void endElement(String uri, String localName, String name)
{
String tag = peekElement();
if(name.equals(tag))
{
popElement();
}
else
{
// can't happen
throw new InternalError();
}
} //}}}
//{{{ startDocument() method
public void startDocument()
{
try
{
pushElement(null);
}
catch (Exception e)
{
e.printStackTrace();
}
} //}}}
//{{{ getCachedServices() method
public ServiceManager.Descriptor[] getCachedServices()
{
return (ServiceManager.Descriptor[])cachedServices.toArray(
new ServiceManager.Descriptor[cachedServices.size()]);
} //}}}
//{{{ Private members
private URL uri;
private String serviceName;
private String serviceClass;
private StringBuffer code;
private Stack stateStack;
private List cachedServices;
//}}}
//{{{ pushElement() method
private String pushElement(String name)
{
name = (name == null) ? null : name.intern();
stateStack.push(name);
return name;
} //}}}
//{{{ peekElement() method
private String peekElement()
{
return (String) stateStack.peek();
} //}}}
//{{{ popElement() method
private String popElement()
{
return (String) stateStack.pop();
} //}}}
//}}}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy