Skip to content

Commit

Permalink
Updated JavaParser to include optional JavaResources if resources add…
Browse files Browse the repository at this point in the history
…on is installed
  • Loading branch information
lincolnthree committed Feb 11, 2013
1 parent 1dd1194 commit 6a5427e
Show file tree
Hide file tree
Showing 13 changed files with 682 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.forge.dependencies;

/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
*/
public class DependencyException extends RuntimeException
{
private static final long serialVersionUID = 3858719629364658345L;

public DependencyException()
{
}

public DependencyException(String message)
{
super(message);
}

public DependencyException(Throwable e)
{
super(e);
}

public DependencyException(String message, Throwable e)
{
super(message, e);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.jboss.forge.container.services.Exported;
import org.jboss.forge.dependencies.Coordinate;
import org.jboss.forge.dependencies.Dependency;
import org.jboss.forge.dependencies.DependencyException;
import org.jboss.forge.dependencies.DependencyQuery;
import org.jboss.forge.dependencies.builder.CoordinateBuilder;
import org.jboss.forge.dependencies.builder.DependencyBuilder;
Expand Down Expand Up @@ -121,7 +122,7 @@ public List<Coordinate> resolveVersions(DependencyQuery query)

/**
* Returns the versions of a specific artifact
*
*
* @param query
* @return
*/
Expand Down Expand Up @@ -230,9 +231,9 @@ public boolean accept(DependencyNode node, List<DependencyNode> parents)
DependencyResult result = system.resolveDependencies(session, dr);
return MavenConvertUtils.toDependencyNode(null, result.getRoot());
}
catch (DependencyResolutionException e)
catch (Exception e)
{
throw new RuntimeException("Could not resolve dependencies for addon [" + query.getCoordinate() + "]", e);
throw new DependencyException("Could not resolve dependencies for addon [" + query.getCoordinate() + "]", e);
}
}

Expand Down
7 changes: 7 additions & 0 deletions parser-java/addon/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@
<artifactId>parser-java-impl</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge</groupId>
<artifactId>resources</artifactId>
<version>2.0.0-SNAPSHOT</version>
<classifier>forge-addon</classifier>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
Expand Down
14 changes: 14 additions & 0 deletions parser-java/api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,18 @@
</parent>
<artifactId>parser-java-api</artifactId>
<name>Forge - Java Parser Addon API</name>

<dependencies>
<dependency>
<groupId>org.jboss.forge</groupId>
<artifactId>forge-addon-container-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge</groupId>
<artifactId>resources-api</artifactId>
<version>2.0.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/

package org.jboss.forge.parser.resources;

import java.util.Collections;
import java.util.List;

import org.jboss.forge.facets.Facet;
import org.jboss.forge.parser.java.EnumConstant;
import org.jboss.forge.parser.java.JavaEnum;
import org.jboss.forge.resource.Resource;
import org.jboss.forge.resource.ResourceFactory;
import org.jboss.forge.resource.VirtualResource;

public class EnumConstantResource extends VirtualResource<EnumConstant<JavaEnum>>
{
private final EnumConstant<JavaEnum> enumConstant;

public EnumConstantResource(final ResourceFactory factory, final Resource<?> parent,
final EnumConstant<JavaEnum> enumConstant)
{
super(factory, parent);
this.enumConstant = enumConstant;
}

@Override
public Resource<EnumConstant<JavaEnum>> createFrom(final EnumConstant<JavaEnum> file)
{
throw new RuntimeException("not implemented");
}

@Override
protected List<Resource<?>> doListResources()
{
return Collections.emptyList();
}

@Override
public EnumConstant<JavaEnum> getUnderlyingResourceObject()
{
return enumConstant;
}

@Override
public String getName()
{
return enumConstant.getName();
}

@Override
public String toString()
{
return enumConstant.toString();
}

@Override
public boolean delete() throws UnsupportedOperationException
{
throw new UnsupportedOperationException("Deleting Enum constants is not implemented.");
}

@Override
public boolean delete(boolean recursive) throws UnsupportedOperationException
{
throw new UnsupportedOperationException("Deleting Enum constants is not implemented.");
}

@Override
public boolean supports(Class<? extends Facet<?>> type)
{
return false;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/

package org.jboss.forge.parser.resources;

import java.util.Collections;
import java.util.List;

import org.jboss.forge.facets.Facet;
import org.jboss.forge.parser.java.Field;
import org.jboss.forge.parser.java.FieldHolder;
import org.jboss.forge.parser.java.JavaSource;
import org.jboss.forge.resource.Resource;
import org.jboss.forge.resource.ResourceFactory;

/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public class JavaFieldResource extends JavaMemberResource<Field<? extends JavaSource<?>>>
{
private final Field<? extends JavaSource<?>> field;

public JavaFieldResource(final ResourceFactory factory, final JavaResource parent,
final Field<? extends JavaSource<?>> field)
{
super(factory, parent, field);
this.field = field;
}

@Override
public Resource<Field<? extends JavaSource<?>>> createFrom(final Field<? extends JavaSource<?>> file)
{
throw new RuntimeException("not implemented");
}

@Override
protected List<Resource<?>> doListResources()
{
return Collections.emptyList();
}

@Override
public Field<? extends JavaSource<?>> getUnderlyingResourceObject()
{
return field;
}

@Override
public String getName()
{
return field.getName() + "::" + field.getType();
}

@Override
public String toString()
{
return field.toString();
}

@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
public boolean delete() throws UnsupportedOperationException
{
JavaSource<?> origin = field.getOrigin();
if (origin instanceof FieldHolder)
{
((FieldHolder) origin).removeField(field);
if (!((FieldHolder) origin).hasField(field))
{
((JavaResource) this.getParent()).setContents(origin.toString());
return true;
}
}
return false;
}

@Override
public boolean delete(final boolean recursive) throws UnsupportedOperationException
{
return delete();
}

@Override
public boolean supports(Class<? extends Facet<?>> type)
{
return false;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/

package org.jboss.forge.parser.resources;

import java.util.Collections;
import java.util.List;

import org.jboss.forge.parser.java.Member;
import org.jboss.forge.resource.Resource;
import org.jboss.forge.resource.ResourceFactory;
import org.jboss.forge.resource.VirtualResource;

/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
@SuppressWarnings("rawtypes")
public abstract class JavaMemberResource<T extends Member> extends VirtualResource<T>
{
private final T member;

public JavaMemberResource(ResourceFactory factory, final Resource<?> parent, final T member)
{
super(factory, parent);
this.member = member;
}

@Override
public Resource<T> createFrom(final T file)
{
throw new RuntimeException("not implemented");
}

@Override
protected List<Resource<?>> doListResources()
{
return Collections.emptyList();
}

@Override
public T getUnderlyingResourceObject()
{
return member;
}

@Override
public String getName()
{
return member.getName();
}

@Override
public String toString()
{
return member.toString();
}
}
Loading

0 comments on commit 6a5427e

Please sign in to comment.