001/*
002 *  Copyright 2019 Anyware Services
003 *
004 *  Licensed under the Apache License, Version 2.0 (the "License");
005 *  you may not use this file except in compliance with the License.
006 *  You may obtain a copy of the License at
007 *
008 *      http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *  Unless required by applicable law or agreed to in writing, software
011 *  distributed under the License is distributed on an "AS IS" BASIS,
012 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *  See the License for the specific language governing permissions and
014 *  limitations under the License.
015 */
016package org.ametys.cms.data.type.impl;
017
018import org.ametys.cms.data.Binary;
019import org.ametys.cms.data.type.AbstractBinaryElementType;
020import org.ametys.cms.data.type.ResourceElementTypeHelper;
021import org.ametys.plugins.repository.RepositoryConstants;
022import org.ametys.plugins.repository.data.repositorydata.ModifiableRepositoryData;
023import org.ametys.plugins.repository.data.repositorydata.RepositoryData;
024import org.ametys.plugins.repository.data.type.ComplexRepositoryElementType;
025
026/**
027 * Class for binary type of elements stored in the repository
028 */
029public class BinaryRepositoryElementType extends AbstractBinaryElementType implements ComplexRepositoryElementType<Binary>
030{
031    public boolean isSingleValueEmpty(RepositoryData singleValueData)
032    {
033        return ResourceElementTypeHelper.isResourceDataEmpty(singleValueData);
034    }
035    
036    public Binary readSingleValue(RepositoryData singleValueData)
037    {
038        return ResourceElementTypeHelper.readBinaryData(singleValueData);
039    }
040    
041    public void emptySingleValue(ModifiableRepositoryData parentData, String name)
042    {
043        ResourceElementTypeHelper.emptyResourceData(parentData, name, getRepositoryDataType());
044    }
045
046    public void writeSingleValue(ModifiableRepositoryData parentData, String name, Binary value)
047    {
048        ResourceElementTypeHelper.writeSingleBinaryValue(parentData, name, value);
049    }
050    
051    @Override
052    public boolean removeValueBeforeWritingIt()
053    {
054        return false;
055    }
056    
057    public String getRepositoryDataType()
058    {
059        return RepositoryConstants.BINARY_NODETYPE;
060    }
061}