Search in sources :

Example 1 with AttachedBinary

use of com.enonic.xp.node.AttachedBinary in project xp by enonic.

the class XmlNodeSerializerTest method doCreateNode.

private Node doCreateNode(final Instant instant) {
    final PropertyTree propertyTree = new PropertyTree();
    propertyTree.addString("myString", "myStringValue");
    propertyTree.addString("myString", "myStringValue2");
    propertyTree.addString("myEmptyString", "");
    propertyTree.addBoolean("myBoolean", true);
    propertyTree.addDouble("myDouble", 123.1);
    propertyTree.addLong("myLong", 111L);
    propertyTree.addXml("myXml", "<car><color>Arctic Grey<color><car>");
    propertyTree.addString("myHtmlEncoded", "<p><a href=\"/naringsliv/tema/forsikrings-og-pensjonspakker\" data-event=\"{&quot;event_category&quot;: &quot;button&quot;, &quot;event_action&quot;: &quot;click&quot;,&quot;event_label&quot;: &quot;se-php&quot;}\">Se pakkene her</a></p>");
    propertyTree.addGeoPoint("myGeoPoint", GeoPoint.from("8,4"));
    // Date & Time
    propertyTree.addInstant("myInstant", instant);
    propertyTree.addLocalTime("myLocalTime", LocalTime.of(21, 42, 0));
    propertyTree.addLocalDate("myLocalDate", LocalDate.of(2014, 11, 28));
    propertyTree.addLocalDateTime("myLocalDateTime", LocalDateTime.of(2014, 11, 28, 21, 0, 0, 0));
    // Links and ref
    propertyTree.addReference("myRef", Reference.from("abcd"));
    propertyTree.addLink("myLink", Link.from("/root/parent/child"));
    // Binary refs
    propertyTree.addBinaryReference("myBinaryRef1", BinaryReference.from("image.jpg"));
    propertyTree.addBinaryReference("myBinaryRef2", BinaryReference.from("image2.jpg"));
    // Property-set
    final PropertySet mySubset = propertyTree.addSet("mySet");
    mySubset.setString("myString", "myStringValue");
    mySubset.setBoolean("myBoolean", true);
    // Property-set in set
    final PropertySet mySubSubset = mySubset.addSet("mySet");
    mySubSubset.setString("myString", "myStringValue");
    mySubSubset.setBoolean("myBoolean", true);
    // Null values
    propertyTree.addString("myString", null);
    propertyTree.addBoolean("myBoolean", null);
    propertyTree.addDouble("myDouble", null);
    propertyTree.addLong("myLong", null);
    propertyTree.addXml("myXml", null);
    propertyTree.addGeoPoint("myGeoPoint", null);
    propertyTree.addInstant("myInstant", null);
    propertyTree.addLocalTime("myLocalTime", null);
    propertyTree.addLocalDate("myLocalDate", null);
    propertyTree.addLocalDateTime("myLocalDateTime", null);
    propertyTree.addReference("myRef", null);
    propertyTree.addLink("myLink", null);
    propertyTree.addBinaryReference("myBinaryRef2", null);
    propertyTree.addSet("nullSet", null);
    // Index configs
    final IndexConfig indexConfig = IndexConfig.create().enabled(true).fulltext(true).nGram(true).decideByType(false).includeInAllText(true).addIndexValueProcessor(IndexValueProcessors.HTML_STRIPPER).addLanguage("en").build();
    final PatternIndexConfigDocument.Builder indexConfigDocumentBuilder = PatternIndexConfigDocument.create();
    indexConfigDocumentBuilder.analyzer("no");
    indexConfigDocumentBuilder.add("mydata", indexConfig);
    indexConfigDocumentBuilder.addAllTextConfigLanguage("en");
    // Permissions
    final Permission createPermission = Permission.CREATE;
    final Permission publishPermission = Permission.PUBLISH;
    final PrincipalKey systemPrincipalKey = PrincipalKey.from("role:system.admin");
    final PrincipalKey cmsPrincipalKey = PrincipalKey.from("role:cms.admin");
    final AccessControlEntry systemAccessControlEntry = AccessControlEntry.create().principal(systemPrincipalKey).allowAll().build();
    final AccessControlEntry cmsAccessControlEntry = AccessControlEntry.create().principal(cmsPrincipalKey).allow(createPermission).deny(publishPermission).build();
    final AccessControlList accessControlList = AccessControlList.of(systemAccessControlEntry, cmsAccessControlEntry);
    return Node.create().id(NodeId.from("abc")).name(NodeName.from("my-node-name")).parentPath(NodePath.ROOT).childOrder(ChildOrder.manualOrder()).nodeType(NodeType.from("content")).data(propertyTree).indexConfigDocument(indexConfigDocumentBuilder.build()).permissions(accessControlList).inheritPermissions(false).attachedBinaries(AttachedBinaries.create().add(new AttachedBinary(BinaryReference.from("image.jpg"), "a")).add(new AttachedBinary(BinaryReference.from("image2.jpg"), "b")).build()).build();
}
Also used : AccessControlList(com.enonic.xp.security.acl.AccessControlList) IndexConfig(com.enonic.xp.index.IndexConfig) PropertyTree(com.enonic.xp.data.PropertyTree) Permission(com.enonic.xp.security.acl.Permission) PropertySet(com.enonic.xp.data.PropertySet) AccessControlEntry(com.enonic.xp.security.acl.AccessControlEntry) PatternIndexConfigDocument(com.enonic.xp.index.PatternIndexConfigDocument) PrincipalKey(com.enonic.xp.security.PrincipalKey) AttachedBinary(com.enonic.xp.node.AttachedBinary)

Example 2 with AttachedBinary

use of com.enonic.xp.node.AttachedBinary in project xp by enonic.

the class BinaryServiceImpl method store.

@Override
public AttachedBinary store(final RepositoryId repositoryId, final BinaryAttachment binaryAttachment) {
    final Segment segment = RepositorySegmentUtils.toSegment(repositoryId, NodeConstants.BINARY_SEGMENT_LEVEL);
    final BlobRecord blob = this.blobStore.addRecord(segment, binaryAttachment.getByteSource());
    return new AttachedBinary(binaryAttachment.getReference(), blob.getKey().toString());
}
Also used : BlobRecord(com.enonic.xp.blob.BlobRecord) Segment(com.enonic.xp.blob.Segment) AttachedBinary(com.enonic.xp.node.AttachedBinary)

Example 3 with AttachedBinary

use of com.enonic.xp.node.AttachedBinary in project xp by enonic.

the class RepoDumper method createDumpEntry.

private BranchDumpEntry createDumpEntry(final NodeId nodeId) {
    final BranchDumpEntry.Builder builder = BranchDumpEntry.create().nodeId(nodeId);
    final Node currentNode = this.nodeService.getById(nodeId);
    final NodeVersionMetadata currentVersionMetaData = getActiveVersion(nodeId);
    builder.meta(VersionMetaFactory.create(currentNode, currentVersionMetaData));
    if (this.includeBinaries) {
        builder.addBinaryReferences(currentNode.getAttachedBinaries().stream().map(AttachedBinary::getBlobKey).collect(Collectors.toSet()));
    }
    return builder.build();
}
Also used : NodeVersionMetadata(com.enonic.xp.node.NodeVersionMetadata) Node(com.enonic.xp.node.Node) BranchDumpEntry(com.enonic.xp.repo.impl.dump.model.BranchDumpEntry) AttachedBinary(com.enonic.xp.node.AttachedBinary)

Example 4 with AttachedBinary

use of com.enonic.xp.node.AttachedBinary in project xp by enonic.

the class DuplicateNodeCommand method attachBinaries.

private void attachBinaries(final Node node, final CreateNodeParams.Builder paramsBuilder) {
    for (final AttachedBinary attachedBinary : node.getAttachedBinaries()) {
        final RepositoryId repositoryId = ContextAccessor.current().getRepositoryId();
        paramsBuilder.attachBinary(attachedBinary.getBinaryReference(), this.binaryService.get(repositoryId, attachedBinary));
    }
}
Also used : RepositoryId(com.enonic.xp.repository.RepositoryId) AttachedBinary(com.enonic.xp.node.AttachedBinary)

Example 5 with AttachedBinary

use of com.enonic.xp.node.AttachedBinary in project xp by enonic.

the class GetBinaryKeyCommand method getByPropertyPath.

private String getByPropertyPath(final Node node) {
    final BinaryReference binaryReference = node.data().getBinaryReference(this.propertyPath);
    if (binaryReference == null) {
        return null;
    }
    final AttachedBinary attachedBinary = node.getAttachedBinaries().getByBinaryReference(binaryReference);
    return doGetBlobKey(attachedBinary);
}
Also used : BinaryReference(com.enonic.xp.util.BinaryReference) AttachedBinary(com.enonic.xp.node.AttachedBinary)

Aggregations

AttachedBinary (com.enonic.xp.node.AttachedBinary)16 BinaryReference (com.enonic.xp.util.BinaryReference)7 PropertyTree (com.enonic.xp.data.PropertyTree)6 Node (com.enonic.xp.node.Node)4 Test (org.junit.jupiter.api.Test)4 AttachedBinaries (com.enonic.xp.node.AttachedBinaries)3 RepositoryId (com.enonic.xp.repository.RepositoryId)3 ByteSource (com.google.common.io.ByteSource)3 IndexConfig (com.enonic.xp.index.IndexConfig)2 UpdateNodeParams (com.enonic.xp.node.UpdateNodeParams)2 BranchDumpEntry (com.enonic.xp.repo.impl.dump.model.BranchDumpEntry)2 AbstractNodeTest (com.enonic.xp.repo.impl.node.AbstractNodeTest)2 AccessControlEntry (com.enonic.xp.security.acl.AccessControlEntry)2 AccessControlList (com.enonic.xp.security.acl.AccessControlList)2 Application (com.enonic.xp.app.Application)1 BlobKey (com.enonic.xp.blob.BlobKey)1 BlobRecord (com.enonic.xp.blob.BlobRecord)1 Segment (com.enonic.xp.blob.Segment)1 Property (com.enonic.xp.data.Property)1 PropertySet (com.enonic.xp.data.PropertySet)1