/** * Sets the ownership information. * * @param folder Folder to be modified * @param descr A description to be set. Use null to drop settings. * @throws IOException */ public static void setOwnership( @Nonnull AbstractFolder<?> folder, @CheckForNull OwnershipDescription descr) throws IOException { FolderOwnershipProperty prop = getOwnerProperty(folder); if (prop == null) { prop = new FolderOwnershipProperty(descr); folder.addProperty(prop); } else { prop.setOwnershipDescription(descr); } }
@Override public OwnershipInfo getOwnershipInfo(AbstractFolder<?> item) { if (item == null) { // Handle renames, etc. return OwnershipInfo.DISABLED_INFO; } // Retrieve Ownership from the Folder property FolderOwnershipProperty prop = getOwnerProperty(item); if (prop != null) { OwnershipDescription d = prop.getOwnership(); if (d.isOwnershipEnabled()) { return new OwnershipInfo(prop.getOwnership(), new FolderOwnershipDescriptionSource(item)); } } // We go to upper items in order to get the ownership description if (!OwnershipPluginConfiguration.get() .getInheritanceOptions() .isBlockInheritanceFromItemGroups()) { ItemGroup parent = item.getParent(); AbstractOwnershipHelper<ItemGroup> located = OwnershipHelperLocator.locate(parent); while (located != null) { OwnershipInfo fromParent = located.getOwnershipInfo(parent); if (fromParent.getDescription().isOwnershipEnabled()) { return fromParent; } if (parent instanceof Item) { Item parentItem = (Item) parent; parent = parentItem.getParent(); located = OwnershipHelperLocator.locate(parent); } else { located = null; } } } return OwnershipInfo.DISABLED_INFO; }