[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] Problem generating metamodel
|
Thanks Guy for the response. Here is the class I have. Everything is mapped
through orm.xml, no annotations in the code. Attaching the snippet of
orm.xml as well.
--------------------------------------------
<entity class="UserGroupList" name="UserGroupList">
<table name="UserGroupList">
</table>
<attributes>
<id name="id" />
<basic name="operation" />
<basic name="groupIds" />
<element-collection name="userNames">
<collection-table
name="Acl_Users"></collection-table></element-collection>
</attributes>
</entity>
--------------------------------
public class UserGroupList implements UserGroupListAclConfig {
/** Static logger reference. */
private static final Logger LOGGER = LogFactory.getLogger();
private List<String> groupIds = new ArrayList<String>();
private List<String> userNames = new ArrayList<String>();
private String operation;
private String id;
/** {@inheritDoc} */
@Override
public void addGroup(Group group) {
if (!groupIds.contains(group.getId())) {
groupIds.add(group.getId());
}
}
/** {@inheritDoc} */
@Override
public void addUser(User user) {
if (!userNames.contains(user.getName())) {
userNames.add(user.getName());
}
}
private List<String> getGroupIds() {
return groupIds;
}
/** {@inheritDoc} */
@Override
public List<Group> getGroups() {
GroupFactory factory = GroupFactory.getFactory();
List<Group> groups = new ArrayList<Group>();
for (String groupId : groupIds) {
Group group = factory.getGroupById(groupId);
if (group != null) {
groups.add(group);
}
}
return groups;
}
/**
* Returns the id.
* @return - String object
*/
public String getId() {
return id;
}
/** {@inheritDoc} */
@Override
public String getOperation() {
return operation;
}
private List<String> getUserNames() {
return userNames;
}
/** {@inheritDoc} */
@Override
public List<User> getUsers() {
UserFactory factory = UserFactory.getFactory();
List<User> users = new ArrayList<User>();
for (String userName : userNames) {
User user = factory.getUser(userName);
if (user != null) {
users.add(user);
}
}
return users;
}
public void removeGroup(Group group) {
groupIds.remove(group.getId());
}
public void removeUser(User user) {
userNames.remove(user.getName());
}
private void setGroupIds(List<String> groupIds) {
this.groupIds = groupIds;
}
/**
* Sets the id to be used with AclConfig.
* @param id
*/
public void setId(String id) {
this.id = id;
}
public void setOperation(String operation) {
this.operation = operation;
}
private void setUserNames(List<String> userNames) {
this.userNames = userNames;
}
}
---------------------------------------------
Thanks,
gopal
gjanjana wrote:
>
> Just posting this as a separate thread.
>
> When I am running Metamodel APT either through commandline or through
> eclipse APT, I am getting following error. My entity access type is set to
> "Field" explicitly, not sure why preprocessor is trying to introspect the
> methods. Any light on this is aprreciated.
>
> "Mapping metadata cannot be applied to properties/methods that take
> arguments. The attribute [method addGroup] from class [class
> UserGroupList] is in violation of this restriction. Ensure the method has
> no arguments if it is mapped with annotations or in an XML mapping file."
>
> I have class userGroupList which is an entity with access type set to
> "Field" not "Property", not sure why is it trying to validate methods. I
> do have method addGroup in that class but it is just a business method
> that EclipseLink need not worry.
>
> For your reference, this is how I try to generate the metadata information
> using Ant:
> ------------------------------------------------------
> <target name="generate-metamodel" >
> <property name="metaPackage" value="metamodel"/>
> <delete>
> <fileset dir="${project.dir}/src" includes="**/*_.java"/>
> </delete>
> <echo message="generating MetaData "/>
> <javac srcdir="${project.dir}/src" verbose="true"
> destdir="${project.dir}/src"
> classpathref="compile.class.path">
> <compilerarg line=" -processor
> org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor" />
> <compilerarg line=" -proc:only" compiler="javac1.6" />
> </javac>
>
> </target>
> ------------------------------------------------------
>
>
> -gopal
>
--
View this message in context: http://old.nabble.com/Problem-generating-metamodel-tp28283479p28287713.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.