/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.ant.model; import java.io.IOException; import java.io.StringReader; import org.eclipse.ant.internal.core.contentDescriber.AntBuildfileContentDescriber; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.QualifiedName; import org.eclipse.core.runtime.content.IContentDescription; import org.eclipse.core.runtime.content.IContentType; import org.jboss.tools.common.model.loaders.*; import org.jboss.tools.common.model.plugin.ModelPlugin; public class AntEntityRecognizer implements EntityRecognizer { private static final QualifiedName[] SUPPORTED_OPTIONS = new QualifiedName[] {IContentDescription.CHARSET, IContentDescription.BYTE_ORDER_MARK}; public AntEntityRecognizer() {} public String getEntityName(EntityRecognizerContext context) { return getEntityName(context.getExtension(), context.getBody()); } String getEntityName(String ext, String body) { if(body == null) return null; IContentType cd = Platform.getContentTypeManager().getContentType("org.eclipse.ant.core.antBuildFile"); //$NON-NLS-1$ AntBuildfileContentDescriber d = new AntBuildfileContentDescriber(); int i = -1; try { i = d.describe(new StringReader(body), null); if(i == 2) { IContentDescription aa = cd.getDescriptionFor(new StringReader(body), SUPPORTED_OPTIONS); } } catch (IOException e) { ModelPlugin.getPluginLog().logError(e); } return i == 2 ? "FileANT" : null; //$NON-NLS-1$ // AntParser p = new AntParser(body); // return (p.getTargets() != null) ? "FileANT" : null; } }