Java源码示例:org.asciidoctor.extension.DocinfoProcessor
示例1
public static RubyClass register(JRubyAsciidoctor asciidoctor, final Class<? extends DocinfoProcessor> docinfoProcessor) {
RubyClass rubyClass = ProcessorProxyUtil.defineProcessorClass(asciidoctor.getRubyRuntime(), "DocinfoProcessor", new JRubyAsciidoctorObjectAllocator(asciidoctor) {
@Override
public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
return new DocinfoProcessorProxy(asciidoctor, klazz, docinfoProcessor);
}
});
applyAnnotations(docinfoProcessor, rubyClass);
ProcessorProxyUtil.defineAnnotatedMethods(rubyClass, DocinfoProcessorProxy.class);
return rubyClass;
}
示例2
public static RubyClass register(final JRubyAsciidoctor asciidoctor, final DocinfoProcessor docinfoProcessor) {
RubyClass rubyClass = ProcessorProxyUtil.defineProcessorClass(asciidoctor.getRubyRuntime(), "DocinfoProcessor", new JRubyAsciidoctorObjectAllocator(asciidoctor) {
@Override
public IRubyObject allocate(Ruby runtime, RubyClass klazz) {
return new DocinfoProcessorProxy(asciidoctor, klazz, docinfoProcessor);
}
});
applyAnnotations(docinfoProcessor.getClass(), rubyClass);
ProcessorProxyUtil.defineAnnotatedMethods(rubyClass, DocinfoProcessorProxy.class);
return rubyClass;
}
示例3
@Override
public ExtensionGroup docinfoProcessor(final Class<? extends DocinfoProcessor> docInfoProcessor) {
final RubyClass rubyClass = DocinfoProcessorProxy.register(asciidoctor, docInfoProcessor);
registrators.add(new Registrator() {
@Override
public void register(IRubyObject registry) {
registry.callMethod(rubyRuntime.getCurrentContext(), "docinfo_processor", rubyClass);
}
});
return this;
}
示例4
@Override
public ExtensionGroup docinfoProcessor(final DocinfoProcessor docInfoProcessor) {
final RubyClass rubyClass = DocinfoProcessorProxy.register(asciidoctor, docInfoProcessor);
registrators.add(new Registrator() {
@Override
public void register(IRubyObject registry) {
registry.callMethod(rubyRuntime.getCurrentContext(), "docinfo_processor", rubyClass);
}
});
return this;
}
示例5
@Override
public ExtensionGroup docinfoProcessor(final String docInfoProcessor) {
try {
final Class<? extends DocinfoProcessor> docinfoProcessorClass = (Class<? extends DocinfoProcessor>) Class.forName(docInfoProcessor);
docinfoProcessor(docinfoProcessorClass);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
return this;
}
示例6
@Override
public JavaExtensionRegistry docinfoProcessor(String docInfoProcessor) {
try {
Class<? extends DocinfoProcessor> docinfoProcessorClass = (Class<? extends DocinfoProcessor>) Class.forName(docInfoProcessor);
docinfoProcessor(docinfoProcessorClass);
return this;
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
示例7
public DocinfoProcessorProxy(JRubyAsciidoctor asciidoctor, RubyClass metaClass, Class<? extends DocinfoProcessor> docinfoProcessorClass) {
super(asciidoctor, metaClass, docinfoProcessorClass);
}
示例8
public DocinfoProcessorProxy(JRubyAsciidoctor asciidoctor, RubyClass metaClass, DocinfoProcessor docinfoProcessor) {
super(asciidoctor, metaClass, docinfoProcessor);
}
示例9
@Override
public JavaExtensionRegistry docinfoProcessor(Class<? extends DocinfoProcessor> docInfoProcessor) {
RubyClass rubyClass = DocinfoProcessorProxy.register(asciidoctor, docInfoProcessor);
getAsciidoctorModule().callMethod("docinfo_processor", rubyClass);
return this;
}
示例10
@Override
public JavaExtensionRegistry docinfoProcessor(DocinfoProcessor docInfoProcessor) {
RubyClass rubyClass = DocinfoProcessorProxy.register(asciidoctor, docInfoProcessor);
getAsciidoctorModule().callMethod("docinfo_processor", rubyClass);
return this;
}
示例11
@Override
@SuppressWarnings("unchecked")
public void register(String extensionClassName, String blockName) throws MojoExecutionException {
Class<? extends Processor> clazz;
try {
clazz = (Class<Processor>) Class.forName(extensionClassName);
} catch (ClassCastException cce) {
// Use RuntimeException to avoid catching, we only want the message in the Mojo
throw new RuntimeException("'" + extensionClassName + "' is not a valid AsciidoctorJ processor class");
} catch (ClassNotFoundException e) {
throw new RuntimeException("'" + extensionClassName + "' not found in classpath");
}
// TODO: Replace with direct method calls again as soon as this project compiles against AsciidoctorJ 1.6.0
if (DocinfoProcessor.class.isAssignableFrom(clazz)) {
register(javaExtensionRegistry, "docinfoProcessor", clazz);
} else if (Preprocessor.class.isAssignableFrom(clazz)) {
register(javaExtensionRegistry, "preprocessor", clazz);
} else if (Postprocessor.class.isAssignableFrom(clazz)) {
register(javaExtensionRegistry, "postprocessor", clazz);
} else if (Treeprocessor.class.isAssignableFrom(clazz)) {
register(javaExtensionRegistry, "treeprocessor", clazz);
} else if (BlockProcessor.class.isAssignableFrom(clazz)) {
if (blockName == null) {
register(javaExtensionRegistry, "block", clazz);
} else {
register(javaExtensionRegistry, "block", blockName, clazz);
}
} else if (IncludeProcessor.class.isAssignableFrom(clazz)) {
register(javaExtensionRegistry, "includeProcessor", clazz);
} else if (BlockMacroProcessor.class.isAssignableFrom(clazz)) {
if (blockName == null) {
register(javaExtensionRegistry, "blockMacro", clazz);
} else {
register(javaExtensionRegistry, "blockMacro", blockName, clazz);
}
} else if (InlineMacroProcessor.class.isAssignableFrom(clazz)) {
if (blockName == null) {
register(javaExtensionRegistry, "inlineMacro", clazz);
} else {
register(javaExtensionRegistry, "inlineMacro", blockName, clazz);
}
}
}