permission.getName() );
permissionMap.put( permission.getName(), permission );
}
else
{
JdoOperation operation = (JdoOperation) permission.getOperation();
if ( operations.containsKey( operation.getName() ) )
{
operation = operations.get( operation.getName() );
}
else if ( objectExists( operation ) )
{
operation = (JdoOperation) PlexusJdoUtils.getObjectById( getPersistenceManager(),
JdoOperation.class,
operation.getName() );
operations.put( operation.getName(), operation );
}
else
{
RBACObjectAssertions.assertValid( operation );
operation = (JdoOperation) PlexusJdoUtils.saveObject( getPersistenceManager(), operation,
null );
operations.put( operation.getName(), operation );
}
permission.setOperation( operation );
JdoResource resource = (JdoResource) permission.getResource();
if ( resources.containsKey( resource.getIdentifier() ) )