Package org.aperteworkflow.editor.processeditor.tab.dict.wrappers

Source Code of org.aperteworkflow.editor.processeditor.tab.dict.wrappers.XmlDictionaryWrapper

package org.aperteworkflow.editor.processeditor.tab.dict.wrappers;

import org.aperteworkflow.util.dict.wrappers.DictionaryWrapper;
import pl.net.bluesoft.rnd.processtool.dict.xml.Dictionary;
import pl.net.bluesoft.rnd.processtool.dict.xml.DictionaryEntry;
import pl.net.bluesoft.rnd.processtool.dict.xml.DictionaryPermission;
import pl.net.bluesoft.util.lang.cquery.func.F;
import pl.net.bluesoft.util.lang.cquery.func.P;

import java.util.List;

import static pl.net.bluesoft.util.lang.cquery.CQuery.from;

/**
* User: POlszewski
* Date: 2012-12-03
* Time: 16:16
*/
public class XmlDictionaryWrapper implements DictionaryWrapper<Dictionary> {
  public static final String _DICTIONARY_NAME = "dictionaryName";
  public static final String _DESCRIPTION = "description";
  public static final String _EDIT_PERMISSION = "editPermission";

  private final Dictionary dictionary;

  public XmlDictionaryWrapper(Dictionary dictionary) {
    this.dictionary = dictionary;
  }

  @Override
  public Dictionary getWrappedObject() {
    return dictionary;
  }

  @Override
  public String getDictionaryId() {
    return dictionary.getDictionaryId();
  }

  @Override
  public void setDictionaryId(String dictionaryId) {
    dictionary.setDictionaryId(dictionaryId);
  }

  @Override
  public String getLanguageCode() {
    return dictionary.getLanguageCode();
  }

  @Override
  public void setLanguageCode(String languageCode) {
    dictionary.setLanguageCode(languageCode);
  }

  @Override
  public String getDictionaryName() {
    return dictionary.getDictionaryName();
  }

  @Override
  public void setDictionaryName(String dictionaryName) {
    dictionary.setDictionaryName(dictionaryName);
  }

  @Override
  public String getDescription() {
    return dictionary.getDescription();
  }

  @Override
  public void setDescription(String description) {
    dictionary.setDescription(description);
  }

  public String getEditPermission() {
    DictionaryPermission permission = getEditDictionaryPermission();

    if (permission != null) {
      return permission.getRoleName();
    }
    return null;
  }

  public void setEditPermission(String editPermission) {
    DictionaryPermission permission = getEditDictionaryPermission();

    if (permission == null) {
      permission = new DictionaryPermission();
      permission.setPrivilegeName("EDIT");
      dictionary.getPermissions().add(permission);
    }
    permission.setRoleName(editPermission);
  }

  private DictionaryPermission getEditDictionaryPermission() {
    return from(dictionary.getPermissions()).firstOrDefault(new P<DictionaryPermission>() {
        @Override
        public boolean invoke(DictionaryPermission dictionaryPermission) {
          return dictionaryPermission.getPrivilegeName().equals("EDIT");
        }
      });
  }

  public List<XmlDictionaryItemWrapper> getItems() {
    return from(dictionary.getEntries()).select(new F<DictionaryEntry, XmlDictionaryItemWrapper>() {
      @Override
      public XmlDictionaryItemWrapper invoke(DictionaryEntry x) {
        return new XmlDictionaryItemWrapper(x);
      }
    }).toList();
  }

  public void addItem(XmlDictionaryItemWrapper item) {
    dictionary.getEntries().add(item.getWrappedObject());
  }

  public XmlDictionaryItemWrapper lookup(final String key) {
    DictionaryEntry dictionaryEntry = from(dictionary.getEntries()).firstOrDefault(new P<DictionaryEntry>() {
      @Override
      public boolean invoke(DictionaryEntry dictionaryEntry) {
        return dictionaryEntry.getKey().equals(key);
      }
    });
    return dictionaryEntry != null ? new XmlDictionaryItemWrapper(dictionaryEntry) : null;
  }
}
TOP

Related Classes of org.aperteworkflow.editor.processeditor.tab.dict.wrappers.XmlDictionaryWrapper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.