Java 类org.eclipse.emf.ecore.resource.ContentHandler 实例源码
项目:rest-modeling-framework
文件:RamlResourceSet.java
public RamlResourceSet() {
final List<URIHandler> uriHandlers = Arrays.asList(
new PlatformResourceURIHandlerImpl(),
new FileURIHandlerImpl(),
new EFSURIHandlerImpl(),
new ArchiveURIHandlerImpl(),
new ContentNegotiationURIHandler(ACCEPT_HEADER_VALUE));
final ExtensibleURIConverterImpl uriConverter =
new ExtensibleURIConverterImpl(uriHandlers, ContentHandler.Registry.INSTANCE.contentHandlers());
setURIConverter(uriConverter);
final Resource.Factory.Registry resourceFactoryRegistry = getResourceFactoryRegistry();
final RamlResourceFactory resourceFactory = new RamlResourceFactory();
resourceFactoryRegistry
.getExtensionToFactoryMap().put("raml", resourceFactory);
resourceFactoryRegistry.getProtocolToFactoryMap()
.put("http", resourceFactory);
final Map<String, Object> contentTypeToFactoryMap = resourceFactoryRegistry.getContentTypeToFactoryMap();
for (final String contentType : ACCEPTED_MIME_TYPES) {
contentTypeToFactoryMap
.put(contentType, resourceFactory);
}
addBuiltinTypes();
}
项目:xtext-core
文件:XtextGrammarReconcilationTest.java
@Test public void testSimple() throws Exception {
// this fails see bug #252181
String model = "grammar foo with org.eclipse.xtext.common.Terminals Honolulu : name=ID;";
// load grammar model
XtextResourceSet rs = get(XtextResourceSet.class);
Resource resource = rs.createResource(URI.createURI("foo.xtext"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
resource.load(new StringInputStream(model), null);
Grammar object = (Grammar) resource.getContents().get(0);
// modify first rule
object.getRules().get(0).setName("HONOLULU");
// save
ByteArrayOutputStream out = new ByteArrayOutputStream();
resource.save(out, SaveOptions.newBuilder().format().getOptions().toOptionsMap());
String result = new String(out.toByteArray());
// check
assertFalse(model.equals(result));
String expectedModel = LineDelimiters.toPlatform("grammar foo with org.eclipse.xtext.common.Terminals\n\nHONOLULU:\n name=ID;");
assertEquals(expectedModel, result);
}
项目:xtext-core
文件:Xtext2EcoreTransformerTest.java
@Test
public void testBug_266807() throws Exception {
final XtextResourceSet rs = this.<XtextResourceSet>get(XtextResourceSet.class);
rs.setClasspathURIContext(this.getClass());
StringConcatenation _builder = new StringConcatenation();
_builder.append("classpath:/");
String _replace = this.getClass().getPackage().getName().replace(Character.valueOf('.').charValue(), Character.valueOf('/').charValue());
_builder.append(_replace);
_builder.append("/Test.xtext");
Resource _createResource = rs.createResource(
URI.createURI(_builder.toString()),
ContentHandler.UNSPECIFIED_CONTENT_TYPE);
final XtextResource resource = ((XtextResource) _createResource);
resource.load(null);
EList<Resource.Diagnostic> _errors = resource.getErrors();
for (final Resource.Diagnostic d : _errors) {
Assert.fail(d.getMessage());
}
}
项目:eclipse-avro
文件:PlatformContentHandlerImpl.java
/**
* Returns the given property's Eclipse value converted to EMF's corresponding basic value.
* @param qualifiedName the name of the property for which this value applies.
* @param value the value to convert.
* @return the given property's Eclipse value converted to EMF's corresponding basic value.
*/
protected Object getDescriptionValue(QualifiedName qualifiedName, Object value)
{
if (value == null)
{
return null;
}
else if (IContentDescription.BYTE_ORDER_MARK.equals(qualifiedName))
{
for (ByteOrderMark byteOrderMarker : ContentHandler.ByteOrderMark.values())
{
if (value == byteOrderMarker.bytes())
{
return byteOrderMarker;
}
}
return null;
}
else
{
return value;
}
}
项目:eclipse-avro
文件:ContentHandlerImpl.java
/**
* Returns whether the named property is one requested in the options.
* @param property the property in question.
* @param options the options in which to look for the requested property.
* @return whether the named property is one requested in the options.
* @see #getRequestedProperties(Map)
*/
protected boolean isRequestedProperty(String property, Map<?, ?> options)
{
if (ContentHandler.VALIDITY_PROPERTY.equals(property) || ContentHandler.CONTENT_TYPE_PROPERTY.equals(property))
{
return true;
}
else
{
Set<String> requestedProperties = getRequestedProperties(options);
if (requestedProperties == null)
{
return true;
}
else
{
return requestedProperties.contains(property);
}
}
}
项目:eclipse-avro
文件:ContentHandlerImpl.java
/**
* Returns the line delimiter of the input stream; it's computed from the bytes interpreted using the {@link #getCharset(URI, InputStream, Map, Map) appropriate character set}.
* @param uri the URI of the input stream.
* @param inputStream the input stream.
* @param options any options that might influence the interpretation of the content.
* @param context a cache for previously computed information.
* @return the line delimiter of the input stream.
* @throws IOException if there is a problem loading the content.
* @since 2.9
*/
protected String getLineDelimiter(URI uri, InputStream inputStream, Map<?, ?> options, Map<Object, Object> context) throws IOException
{
String result = (String)context.get(ContentHandler.LINE_DELIMITER_PROPERTY);
if (result == null)
{
String charset = getCharset(uri, inputStream, options, context);
if (charset != null)
{
result = getLineDelimiter(inputStream, charset);
if (result != null)
{
context.put(ContentHandler.LINE_DELIMITER_PROPERTY, result);
}
}
}
return result;
}
项目:eclipse-avro
文件:ContentHandlerImpl.java
/**
* Returns the given property's basic EMF value converted to the corresponding Eclipse value.
* @param qualifiedName the name of the property for which this value applies.
* @param value the value to convert.
* @return the given property's basic EMF value converted to the corresponding Eclipse value.
*/
protected Object getDescriptionValue(QualifiedName qualifiedName, Object value)
{
if (value == null)
{
return null;
}
else if (IContentDescription.BYTE_ORDER_MARK.equals(qualifiedName))
{
return ((ContentHandler.ByteOrderMark)value).bytes();
}
else
{
return value;
}
}
项目:clickwatch
文件:PlatformContentHandlerImpl.java
/**
* Returns the given property's Eclipse value converted to EMF's corresponding basic value.
* @param qualifiedName the name of the property for which this value applies.
* @param value the value to convert.
* @return the given property's Eclipse value converted to EMF's corresponding basic value.
*/
protected Object getDescriptionValue(QualifiedName qualifiedName, Object value)
{
if (value == null)
{
return null;
}
else if (IContentDescription.BYTE_ORDER_MARK.equals(qualifiedName))
{
for (ByteOrderMark byteOrderMarker : ContentHandler.ByteOrderMark.values())
{
if (value == byteOrderMarker.bytes())
{
return byteOrderMarker;
}
}
return null;
}
else
{
return value;
}
}
项目:clickwatch
文件:ContentHandlerImpl.java
/**
* Returns whether the named property is one requested in the options.
* @param property the property in question.
* @param options the options in which to look for the requested property.
* @return whether the named property is one requested in the options.
* @see #getRequestedProperties(Map)
*/
protected boolean isRequestedProperty(String property, Map<?, ?> options)
{
if (ContentHandler.VALIDITY_PROPERTY.equals(property) || ContentHandler.CONTENT_TYPE_PROPERTY.equals(property))
{
return true;
}
else
{
Set<String> requestedProperties = getRequestedProperties(options);
if (requestedProperties == null)
{
return true;
}
else
{
return requestedProperties.contains(property);
}
}
}
项目:clickwatch
文件:ContentHandlerImpl.java
/**
* Returns the given property's basic EMF value converted to the corresponding Eclipse value.
* @param qualifiedName the name of the property for which this value applies.
* @param value the value to convert.
* @return the given property's basic EMF value converted to the corresponding Eclipse value.
*/
protected Object getDescriptionValue(QualifiedName qualifiedName, Object value)
{
if (value == null)
{
return null;
}
else if (IContentDescription.BYTE_ORDER_MARK.equals(qualifiedName))
{
return ((ContentHandler.ByteOrderMark)value).bytes();
}
else
{
return value;
}
}
项目:xtext-extras
文件:GrammarAccessFragment.java
@Override
public void generate(Grammar grammar, XpandExecutionContext ctx) {
RuleNames.ensureAdapterInstalled(grammar);
super.generate(grammar, ctx);
final ResourceSaveIndicator isSaving = new ResourceSaveIndicator();
// create a defensive clone
Grammar copy = deepCopy(grammar, isSaving);
ResourceSet set = copy.eResource().getResourceSet();
// save grammar model
String path;
if (xmlVersion == null) {
path = GrammarUtil.getClasspathRelativePathToBinGrammar(copy);
} else {
log.warn("'xmlVersion' has been specified for this "
+ GrammarAccessFragment.class.getSimpleName()
+ ". Therefore, the grammar is persisted as XMI and not as binary. This can be a performance drawback.");
path = GrammarUtil.getClasspathRelativePathToXmi(copy);
}
URI uri = URI.createURI(ctx.getOutput().getOutlet(Generator.SRC_GEN).getPath() + "/" + path);
Resource resource = set.createResource(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
addAllGrammarsToResource(resource, copy, new HashSet<Grammar>());
isSaving.set(Boolean.TRUE);
Map<String, Object> saveOptions = Maps.newHashMap();
if (resource instanceof XMLResource) {
((XMLResource) resource).setXMLVersion(getXmlVersion());
} else if (resource instanceof BinaryResourceImpl){
saveOptions.put(BinaryResourceImpl.OPTION_VERSION, BinaryResourceImpl.BinaryIO.Version.VERSION_1_1);
saveOptions.put(BinaryResourceImpl.OPTION_STYLE_DATA_CONVERTER, Boolean.TRUE);
}
try {
resource.save(saveOptions);
} catch (IOException e) {
log.error(e.getMessage(), e);
} finally {
isSaving.set(Boolean.FALSE);
}
}
项目:xtext-extras
文件:GrammarAccessFragment.java
/**
* @since 2.4
*/
protected void movePackageToNewResource(EPackage pack, ResourceSet set) {
Resource resource = set.createResource(
URI.createURI("___temp___." + FragmentFakingEcoreResourceFactoryImpl.ECORE_SUFFIX),
ContentHandler.UNSPECIFIED_CONTENT_TYPE);
resource.setURI(URI.createURI(pack.getNsURI()));
resource.getContents().add(pack);
}
项目:xtext-extras
文件:EMFGeneratorFragment.java
protected Resource createResourceForEPackages(Grammar grammar, XpandExecutionContext ctx, List<EPackage> packs,
ResourceSet rs) {
URI ecoreFileUri = getEcoreFileUri(grammar, ctx);
ecoreFileUri = toPlatformResourceURI(ecoreFileUri);
Resource existing = rs.getResource(ecoreFileUri, false);
if (existing != null) {
existing.unload();
rs.getResources().remove(existing);
}
Resource ecoreFile = rs.createResource(ecoreFileUri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
ecoreFile.getContents().addAll(packs);
return ecoreFile;
}
项目:xtext-core
文件:ResourceServiceProviderRegistryImpl.java
@Override
protected synchronized URIConverter getURIConverter() {
if (this.uriConverter == null) {
List<ContentHandler> withoutPlatformDelegate = Lists.newArrayList();
for (ContentHandler contentHandler : ContentHandler.Registry.INSTANCE.contentHandlers()) {
if (!isTooEager(contentHandler))
withoutPlatformDelegate.add(contentHandler);
}
this.uriConverter = new ExtensibleURIConverterImpl(URIHandler.DEFAULT_HANDLERS, withoutPlatformDelegate);
}
return this.uriConverter;
}
项目:xtext-core
文件:GrammarAccessFragment2.java
protected void movePackageToNewResource(final EPackage pack, final ResourceSet set) {
final Resource resource = set.createResource(
URI.createURI(("___temp___." + FragmentFakingEcoreResource.FactoryImpl.ECORE_SUFFIX)),
ContentHandler.UNSPECIFIED_CONTENT_TYPE);
resource.setURI(URI.createURI(pack.getNsURI()));
resource.getContents().add(pack);
}
项目:xtext-core
文件:EMFGeneratorFragment2.java
protected Resource createResourceForEPackages(final Grammar grammar, final List<EPackage> packs, final ResourceSet rs) {
final URI ecoreFileUri = this.getEcoreFileUri(grammar);
final Resource existing = rs.getResource(ecoreFileUri, false);
if ((existing != null)) {
existing.unload();
rs.getResources().remove(existing);
}
final Resource ecoreFile = rs.createResource(ecoreFileUri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
ecoreFile.getContents().addAll(packs);
return ecoreFile;
}
项目:xtext-core
文件:EcoreUtil2Test.java
@Test public void testSimple() throws Exception {
ResourceSet rs = new ResourceSetImpl();
Resource foo = rs.createResource(URI.createURI("foo.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
foo.getContents().add(ePackage);
Resource bar = rs.createResource(URI.createURI("bar.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
bar.getContents().add(EcoreFactory.eINSTANCE.createEAttribute());
assertEquals(true, EcoreUtil2.isValidUri(ePackage, URI.createURI("bar.xmi")));
}
项目:xtext-core
文件:EcoreUtil2Test.java
@Test public void testEPackageURI() throws Exception {
ResourceSet rs = new ResourceSetImpl();
Resource foo = rs.createResource(URI.createURI("foo.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
EPackage ePackage = EcoreFactory.eINSTANCE.createEPackage();
foo.getContents().add(ePackage);
assertEquals(true, EcoreUtil2.isValidUri(ePackage, URI.createURI(EcorePackage.eNS_URI)));
}
项目:xtext-core
文件:EcoreUtil2Test.java
@Test public void testClone() throws Exception {
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION,
new XMIResourceFactoryImpl());
EPackage.Registry.INSTANCE.put(EcorePackage.eINSTANCE.getNsURI(), EcorePackage.eINSTANCE);
ResourceSetImpl rs = new ResourceSetImpl();
Resource r1 = rs.createResource(URI.createURI("foo.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
Resource r2 = rs.createResource(URI.createURI("bar.xmi"), ContentHandler.UNSPECIFIED_CONTENT_TYPE);
EClass a = EcoreFactory.eINSTANCE.createEClass();
a.setName("a");
EClass b = EcoreFactory.eINSTANCE.createEClass();
r1.getContents().add(a);
b.setName("b");
b.getESuperTypes().add(a);
r2.getContents().add(b);
ResourceSetImpl clone = EcoreUtil2.clone(new ResourceSetImpl(), rs);
EList<Resource> list = clone.getResources();
Resource resA = list.get(0);
assertEquals(URI.createURI("foo.xmi"),resA.getURI());
assertNotSame(resA, r1);
Resource resB = list.get(1);
assertEquals(URI.createURI("bar.xmi"),resB.getURI());
assertNotSame(resB, r2);
EClass a1 = (EClass)resA.getContents().get(0);
EClass b1 = (EClass)resB.getContents().get(0);
assertEquals("a", a1.getName());
assertNotSame(a, a1);
assertEquals("b", b1.getName());
assertNotSame(b, b1);
assertSame(b1.getESuperTypes().get(0),a1);
assertSame(b.getESuperTypes().get(0),a);
}
项目:xtext-core
文件:XtextGrammarSerializationTest.java
public void _testXtestSerializationSelfTest() throws Exception {
Resource res = this.<XtextResourceSet>get(XtextResourceSet.class).createResource(URI.createURI("myfile.xtext"),
ContentHandler.UNSPECIFIED_CONTENT_TYPE);
res.getContents().add(this.<XtextGrammarAccess>get(XtextGrammarAccess.class).getGrammar());
OutputStream outputStream = new ByteArrayOutputStream();
res.save(outputStream, Collections.<Object, Object>emptyMap());
}
项目:dsl-devkit
文件:ResourceServiceProviderLocator.java
/**
* Finds the {@link IResourceServiceProvider} for a language given its file extension.
*
* @param extension
* the language's file extension
* @return the resource service provider for the {@code extension} or null if there is none
*/
public IResourceServiceProvider getResourceServiceProviderByExtension(final String extension) {
Object object = IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().get(extension);
if (object instanceof IResourceServiceProvider) {
return (IResourceServiceProvider) object;
} else {
URI fake = URI.createURI("fake:/foo." + extension); //$NON-NLS-1$
return IResourceServiceProvider.Registry.INSTANCE.getResourceServiceProvider(fake, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
}
}
项目:bts
文件:ResourceForIEditorInputFactory.java
protected XtextResource createResource(ResourceSet resourceSet, URI uri) {
//TODO use the resource factory directly (injected), since the use might open any file with this editor.
Resource aResource = resourceSet.createResource(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
if (!(aResource instanceof XtextResource))
throw new IllegalStateException("The resource factory registered for " + uri
+ " does not yield an XtextResource. Make sure the file name extension is correct (case matters).");
return (XtextResource) aResource;
}
项目:openhab-hdl
文件:ResourceForFileEditorFactory.java
private XtextResource getResource(ResourceSet resourceSet, URI uri) {
Resource aResource = resourceSet.createResource(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
if (!(aResource instanceof XtextResource))
throw new IllegalStateException("The resource factory registered for " + uri
+ " does not yield an XtextResource. Make sure the right resource factory has been registered.");
return (XtextResource) aResource;
}
项目:OpenSPIFe
文件:EnsembleResourceSet.java
public EnsembleResourceSet() {
super();
for (EnsembleResourceFactory factory : factories) {
factory.setResourceSet(this);
}
List<URIHandler> handlers = new ArrayList<URIHandler>(URIHandler.DEFAULT_HANDLERS);
handlers.addAll(0, getURIHandlerContributions());
setURIConverter(new ExtensibleURIConverterImpl(handlers, ContentHandler.Registry.INSTANCE.contentHandlers()));
}
项目:eclipse-avro
文件:ResourceFactoryRegistryImpl.java
protected String getContentTypeIdentifier(URI uri)
{
try
{
Map<String, ?> contentDescription = getURIConverter().contentDescription(uri, getContentDescriptionOptions());
return (String)contentDescription.get(ContentHandler.CONTENT_TYPE_PROPERTY);
}
catch (IOException e)
{
return null;
}
}
项目:eclipse-avro
文件:ContentHandlerRegistryImpl.java
public void put(int priority, ContentHandler contentHandler)
{
Integer integerPriority = priority;
List<ContentHandler> contentHandlers = get(integerPriority);
if (contentHandlers == null)
{
put(integerPriority, contentHandlers = new ArrayList<ContentHandler>());
}
contentHandlers.add(contentHandler);
}
项目:eclipse-avro
文件:ResourceSetImpl.java
public Resource.Factory.Registry getResourceFactoryRegistry()
{
if (resourceFactoryRegistry == null)
{
resourceFactoryRegistry =
new ResourceFactoryRegistryImpl()
{
@Override
protected Resource.Factory delegatedGetFactory(URI uri, String contentTypeIdentifier)
{
return
convert
(getFactory
(uri,
Resource.Factory.Registry.INSTANCE.getProtocolToFactoryMap(),
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(),
Resource.Factory.Registry.INSTANCE.getContentTypeToFactoryMap(),
contentTypeIdentifier,
false));
}
@Override
protected URIConverter getURIConverter()
{
return ResourceSetImpl.this.getURIConverter();
}
@Override
protected Map<?, ?> getContentDescriptionOptions()
{
return new ExtensibleURIConverterImpl.OptionsMap(ContentHandler.OPTION_REQUESTED_PROPERTIES, CONTENT_TYPE_REQUESTED_PROPERTIES, getLoadOptions());
}
};
}
return resourceFactoryRegistry;
}
项目:eclipse-avro
文件:ExtensibleURIConverterImpl.java
public EList<ContentHandler> getContentHandlers()
{
if (contentHandlers == null)
{
contentHandlers = new ContentHandlerList();
}
return contentHandlers;
}
项目:eclipse-avro
文件:ContentHandlerImpl.java
/**
* This base implementation handles computing the {@link ContentHandler#BYTE_ORDER_MARK_PROPERTY},
* the {@link ContentHandler#CHARSET_PROPERTY character set property},
* and the {@link ContentHandler#LINE_DELIMITER_PROPERTY line delimiter property}.
* for each such {@link #isRequestedProperty(String, Map) requested property}.
*/
public Map<String, Object> contentDescription(URI uri, InputStream inputStream, Map<?, ?> options, Map<Object, Object> context) throws IOException
{
Map<String, Object> result = createContentDescription(ContentHandler.Validity.INDETERMINATE);
if (isRequestedProperty(ContentHandler.BYTE_ORDER_MARK_PROPERTY, options))
{
ByteOrderMark byteOrderMark = getByteOrderMark(uri, inputStream, options, context);
if (byteOrderMark != null)
{
result.put(ContentHandler.BYTE_ORDER_MARK_PROPERTY, byteOrderMark);
}
}
if (isRequestedProperty(ContentHandler.CHARSET_PROPERTY, options))
{
String charset = getCharset(uri, inputStream, options, context);
if (charset != null)
{
result.put(ContentHandler.CHARSET_PROPERTY, charset);
}
}
if (isRequestedProperty(ContentHandler.LINE_DELIMITER_PROPERTY, options))
{
String lineDelimiter = getLineDelimiter(uri, inputStream, options, context);
if (lineDelimiter != null)
{
result.put(ContentHandler.LINE_DELIMITER_PROPERTY, lineDelimiter);
}
}
return result;
}
项目:eclipse-avro
文件:ContentHandlerImpl.java
/**
* Returns the byte order marker at the start of the input stream.
* @param uri the URI of the input stream.
* @param inputStream the input stream to scan.
* @param options any options to influence the behavior; this base implementation ignores this.
* @param context the cache for fetching and storing a previous computation of the byte order marker; this base implementation caches {@link ContentHandler#BYTE_ORDER_MARK_PROPERTY}.
* @return the byte order marker at the start of the input stream.
* @throws IOException
*/
protected ByteOrderMark getByteOrderMark(URI uri, InputStream inputStream, Map<?, ?> options, Map<Object, Object> context) throws IOException
{
ByteOrderMark result = (ByteOrderMark)context.get(ContentHandler.BYTE_ORDER_MARK_PROPERTY);
if (result == null)
{
result = ByteOrderMark.read(inputStream);
inputStream.reset();
context.put(ContentHandler.BYTE_ORDER_MARK_PROPERTY, result);
}
return result;
}
项目:clickwatch
文件:ResourceFactoryRegistryImpl.java
protected String getContentTypeIdentifier(URI uri)
{
try
{
Map<String, ?> contentDescription = getURIConverter().contentDescription(uri, getContentDescriptionOptions());
return (String)contentDescription.get(ContentHandler.CONTENT_TYPE_PROPERTY);
}
catch (IOException e)
{
return null;
}
}
项目:clickwatch
文件:ContentHandlerRegistryImpl.java
public void put(int priority, ContentHandler contentHandler)
{
Integer integerPriority = priority;
List<ContentHandler> contentHandlers = get(integerPriority);
if (contentHandlers == null)
{
put(integerPriority, contentHandlers = new ArrayList<ContentHandler>());
}
contentHandlers.add(contentHandler);
}
项目:clickwatch
文件:ExtensibleURIConverterImpl.java
public EList<ContentHandler> getContentHandlers()
{
if (contentHandlers == null)
{
contentHandlers = new ContentHandlerList();
}
return contentHandlers;
}
项目:clickwatch
文件:ContentHandlerImpl.java
/**
* This base implementation handles looking up the {@link ContentHandler#BYTE_ORDER_MARK_PROPERTY} if that's a {@link #isRequestedProperty(String, Map) requested property}.
*/
public Map<String, Object> contentDescription(URI uri, InputStream inputStream, Map<?, ?> options, Map<Object, Object> context) throws IOException
{
Map<String, Object> result = createContentDescription(ContentHandler.Validity.INDETERMINATE);
if (isRequestedProperty(ContentHandler.BYTE_ORDER_MARK_PROPERTY, options))
{
result.put(ContentHandler.BYTE_ORDER_MARK_PROPERTY, getByteOrderMark(uri, inputStream, options, context));
}
return result;
}
项目:clickwatch
文件:ContentHandlerImpl.java
/**
* Returns the byte order marker at the start of the input stream.
* @param uri the URI of the input stream.
* @param inputStream the input stream to scan.
* @param options any options to influence the behavior; this base implementation ignores this.
* @param context the cache for fetching and storing a previous computation of the byte order marker; this base implementation caches {@link ContentHandler#BYTE_ORDER_MARK_PROPERTY}.
* @return the byte order marker at the start of the input stream.
* @throws IOException
*/
protected ByteOrderMark getByteOrderMark(URI uri, InputStream inputStream, Map<?, ?> options, Map<Object, Object> context) throws IOException
{
ByteOrderMark result = (ByteOrderMark)context.get(ContentHandler.BYTE_ORDER_MARK_PROPERTY);
if (result == null)
{
result = ByteOrderMark.read(inputStream);
inputStream.reset();
context.put(ContentHandler.BYTE_ORDER_MARK_PROPERTY, result);
}
return result;
}
项目:xtext-extras
文件:ClasspathTypeProvider.java
@Override
public EList<ContentHandler> getContentHandlers() {
return existing.getContentHandlers();
}
项目:xtext-core
文件:ResourceServiceProviderRegistryImpl.java
@Override
public IResourceServiceProvider getResourceServiceProvider(URI uri) {
return getResourceServiceProvider(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
}
项目:xtext-core
文件:GrammarAccessFragment2.java
protected void writeGrammar() {
final Wrapper<Boolean> isSaving = Wrapper.<Boolean>wrap(Boolean.valueOf(false));
final ResourceSet cloneInto = new ResourceSetImpl();
Map<String, Object> _extensionToFactoryMap = cloneInto.getResourceFactoryRegistry().getExtensionToFactoryMap();
FragmentFakingEcoreResource.FactoryImpl _factoryImpl = new FragmentFakingEcoreResource.FactoryImpl(isSaving);
_extensionToFactoryMap.put(
FragmentFakingEcoreResource.FactoryImpl.ECORE_SUFFIX, _factoryImpl);
final ResourceSet resourceSet = EcoreUtil2.<ResourceSet>clone(cloneInto, this.getLanguage().getGrammar().eResource().getResourceSet());
EObject _head = IterableExtensions.<EObject>head(resourceSet.getResource(this.getLanguage().getGrammar().eResource().getURI(), true).getContents());
final Grammar copy = ((Grammar) _head);
String _xifexpression = null;
if ((this.xmlVersion == null)) {
_xifexpression = GrammarUtil.getClasspathRelativePathToBinGrammar(copy);
} else {
String _xblockexpression = null;
{
String _simpleName = GrammarAccessFragment2.class.getSimpleName();
String _plus = ("The property \'xmlVersion\' has been specified for this " + _simpleName);
String _plus_1 = (_plus + ". Therefore, the grammar is persisted as XMI and not as binary. This can be a performance drawback.");
GrammarAccessFragment2.LOG.warn(_plus_1);
_xblockexpression = GrammarUtil.getClasspathRelativePathToXmi(copy);
}
_xifexpression = _xblockexpression;
}
final String path = _xifexpression;
final URI uri = this.getProjectConfig().getRuntime().getSrcGen().getURI(path);
final Resource resource = resourceSet.createResource(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
HashSet<Grammar> _hashSet = new HashSet<Grammar>();
this.addAllGrammarsToResource(resource, copy, _hashSet);
isSaving.set(Boolean.valueOf(true));
final Map<String, Object> saveOptions = CollectionLiterals.<String, Object>newHashMap();
if ((resource instanceof XMLResource)) {
String _elvis = null;
if (this.xmlVersion != null) {
_elvis = this.xmlVersion;
} else {
_elvis = "1.0";
}
((XMLResource)resource).setXMLVersion(_elvis);
} else {
if ((resource instanceof BinaryResourceImpl)) {
saveOptions.put(BinaryResourceImpl.OPTION_VERSION, BinaryResourceImpl.BinaryIO.Version.VERSION_1_1);
saveOptions.put(BinaryResourceImpl.OPTION_STYLE_DATA_CONVERTER, Boolean.valueOf(true));
}
}
try {
resource.save(saveOptions);
} catch (final Throwable _t) {
if (_t instanceof IOException) {
final IOException e = (IOException)_t;
GrammarAccessFragment2.LOG.error(e.getMessage(), e);
} else {
throw Exceptions.sneakyThrow(_t);
}
} finally {
isSaving.set(Boolean.valueOf(false));
}
}
项目:xtext-core
文件:NamesAreUniqueValidatorTest.java
@Override
public IResourceServiceProvider getResourceServiceProvider(URI uri) {
return getResourceServiceProvider(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
}
项目:xtext-core
文件:ResourceSetBasedResourceDescriptionsTest.java
@Override
public IResourceServiceProvider getResourceServiceProvider(URI uri) {
return getResourceServiceProvider(uri, ContentHandler.UNSPECIFIED_CONTENT_TYPE);
}