@Override public void visitBasicContainerTemplate(BasicContainerTemplate template) { TemplateIntrospector introspector = TemplateIntrospector.newInstance(template); assertThat(introspector.template(),sameInstance((ResourceTemplate)template)); assertThat(introspector.isResource(),equalTo(false)); assertThat(introspector.isContainer(),equalTo(true)); assertThat(introspector.isBasicContainer(),equalTo(true)); assertThat(introspector.isMembershipAwareContainer(),equalTo(false)); assertThat(introspector.isDirectContainer(),equalTo(false)); assertThat(introspector.isIndirectContainer(),equalTo(false)); }
@Override public void visitResourceTemplate(ResourceTemplate template) { TemplateIntrospector introspector = TemplateIntrospector.newInstance(template); assertThat(introspector.template(),sameInstance(template)); assertThat(introspector.isResource(),equalTo(true)); assertThat(introspector.isContainer(),equalTo(false)); assertThat(introspector.isBasicContainer(),equalTo(false)); assertThat(introspector.isMembershipAwareContainer(),equalTo(false)); assertThat(introspector.isDirectContainer(),equalTo(false)); assertThat(introspector.isIndirectContainer(),equalTo(false)); }
@Override public void visitDirectContainerTemplate(DirectContainerTemplate template) { TemplateIntrospector introspector = TemplateIntrospector.newInstance(template); assertThat(introspector.template(),sameInstance((ResourceTemplate)template)); assertThat(introspector.isResource(),equalTo(false)); assertThat(introspector.isContainer(),equalTo(true)); assertThat(introspector.isBasicContainer(),equalTo(false)); assertThat(introspector.isMembershipAwareContainer(),equalTo(true)); assertThat(introspector.isDirectContainer(),equalTo(true)); assertThat(introspector.isIndirectContainer(),equalTo(false)); assertThat(introspector.getMembershipPredicate(),equalTo(template.membershipPredicate())); assertThat(introspector.getMembershipRelation(),equalTo(template.membershipRelation())); }
@Override public void visitIndirectContainerTemplate(IndirectContainerTemplate template) { TemplateIntrospector introspector = TemplateIntrospector.newInstance(template); assertThat(introspector.template(),sameInstance((ResourceTemplate)template)); assertThat(introspector.isResource(),equalTo(false)); assertThat(introspector.isContainer(),equalTo(true)); assertThat(introspector.isBasicContainer(),equalTo(false)); assertThat(introspector.isMembershipAwareContainer(),equalTo(true)); assertThat(introspector.isDirectContainer(),equalTo(false)); assertThat(introspector.isIndirectContainer(),equalTo(true)); assertThat(introspector.getMembershipPredicate(),equalTo(template.membershipPredicate())); assertThat(introspector.getMembershipRelation(),equalTo(template.membershipRelation())); assertThat(introspector.getInsertedContentRelation(),equalTo(template.insertedContentRelation())); }
@Override public void visitDelegatedContainerSnapshot(DelegatedContainerSnapshot container) { if(!container.hasMember(child) || !TemplateIntrospector.newInstance(container.template()).isMembershipAwareContainer()) { return; } if(!container.isRoot()) { UnitOfWork.getCurrent().registerDirty(container.parent()); } } }
private void deleteAttachedResource(DelegatedResourceSnapshot snapshot) { TemplateIntrospector introspector = TemplateIntrospector.newInstance(parent().template()); if(!introspector.isContainer()) { return; } DelegatedContainerSnapshot parent=(DelegatedContainerSnapshot)snapshot; if(parent.softRemoveMember(this)) { UnitOfWork.getCurrent().registerDirty(parent); if(introspector.isMembershipAwareContainer() && !parent.isRoot()) { UnitOfWork.getCurrent().registerDirty(parent.parent()); } } }