private void performSingleResourceNotification(
        CmsObject cms,
        String resName,
        boolean enableNotification,
        int notificationInterval,
        boolean modifySiblings)
    throws CmsException {

        List<CmsResource> resources = new ArrayList<CmsResource>();
        if (modifySiblings) {
            // modify all siblings of a resource
            resources = cms.readSiblings(resName, CmsResourceFilter.IGNORE_EXPIRATION);
        } else {
            // modify only resource without siblings
            resources.add(cms.readResource(resName, CmsResourceFilter.IGNORE_EXPIRATION));
        }
        Iterator<CmsResource> i = resources.iterator();
        while (i.hasNext()) {
            CmsResource resource = i.next();
            // lock resource if auto lock is enabled
            CmsLockActionRecord lockRecord = CmsLockUtil.ensureLock(cms, resource);
            try {
                // write notification settings
                writeProperty(
                    cms,
                    resource,
                    CmsPropertyDefinition.PROPERTY_NOTIFICATION_INTERVAL,
                    String.valueOf(notificationInterval));
                writeProperty(
                    cms,
                    resource,
                    CmsPropertyDefinition.PROPERTY_ENABLE_NOTIFICATION,
                    String.valueOf(enableNotification));
            } finally {
                if (lockRecord.getChange() == LockChange.locked) {
                    cms.unlockResource(resource);
                }
            }
        }
    }
private void performSingleResourceNotification ( CmsObject cms , String resName , boolean enableNotification , int notificationInterval , boolean modifySiblings ) throws CmsException { List < CmsResource > resources = new ArrayList < CmsResource > ( ) ; if ( modifySiblings ) { resources = cms . readSiblings ( resName , CmsResourceFilter . IGNORE_EXPIRATION ) ; } else { resources . add ( cms . readResource ( resName , CmsResourceFilter . IGNORE_EXPIRATION ) ) ; } Iterator < CmsResource > i = resources . iterator ( ) ; while ( i . hasNext ( ) ) { CmsResource resource = i . next ( ) ; CmsLockActionRecord lockRecord = CmsLockUtil . ensureLock ( cms , resource ) ; try { writeProperty ( cms , resource , CmsPropertyDefinition . PROPERTY_NOTIFICATION_INTERVAL , String . valueOf ( notificationInterval ) ) ; writeProperty ( cms , resource , CmsPropertyDefinition . PROPERTY_ENABLE_NOTIFICATION , String . valueOf ( enableNotification ) ) ; } finally { if ( lockRecord . getChange ( ) == LockChange . locked ) { cms . unlockResource ( resource ) ; } } } }
Performs the notification operations on a single resource.<p>

@param cms the CMS context
@param resName the VFS path of the resource
@param enableNotification if the notification is activated
@param notificationInterval the notification interval in days
@param modifySiblings flag indicating to include resource siblings

@throws CmsException if the availability and notification operations fail