/*
* Copyright 2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package org.openntf.domino.design.impl;
import java.util.logging.Logger;
import org.openntf.domino.Document;
import org.openntf.domino.utils.xml.XMLNode;
/**
* @author jgallagher
*
*/
public class IconNote extends AbstractDesignBaseNamed implements org.openntf.domino.design.IconNote {
private static final long serialVersionUID = 1L;
@SuppressWarnings("unused")
private static final Logger log_ = Logger.getLogger(IconNote.class.getName());
/**
* @param document
*/
protected IconNote(final Document document) {
super(document);
}
@Override
protected boolean enforceRawFormat() {
// IconNote is exported in RAW-format. There is no DXL representation
return true;
}
/*
* (non-Javadoc)
*
* @see org.openntf.domino.design.DesignBase#setAlias(java.lang.String)
*/
@Override
public void setAlias(final String alias) {
throw new UnsupportedOperationException();
}
/*
* (non-Javadoc)
*
* @see org.openntf.domino.design.DesignBase#setAliases(java.lang.Iterable)
*/
@Override
public void setAliases(final Iterable<String> aliases) {
throw new UnsupportedOperationException();
}
/*
* (non-Javadoc)
*
* @see org.openntf.domino.design.DesignBase#setName(java.lang.String)
*/
@Override
public void setName(final String name) {
getDxlNode("/note/item[@name='$TITLE']/text").setTextContent(name);
}
@Override
public void setDASMode(final DASMode mode) {
XMLNode node = getDxlNode("/note/item[@name='$AllowRESTDbAPI']");
if (node == null) {
node = getDxlNode("/note").addChildElement("item");
node.setAttribute("name", "AllowRESTDbAPI");
node = node.addChildElement("number");
}
switch (mode) {
case NONE:
node.setTextContent("0");
break;
case VIEWS:
node.setTextContent("1");
break;
case VIEWSANDDOCUMENTS:
node.setTextContent("2");
break;
}
}
@Override
public DASMode getDASMode() {
XMLNode node = getDxlNode("/note/item[name='$AllowRESTDbAPI']/number");
if (node == null) {
return DASMode.NONE;
} else {
if ("1".equals(node.getText())) {
return DASMode.VIEWS;
} else if ("2".equals(node.getText())) {
return DASMode.VIEWSANDDOCUMENTS;
} else {
return DASMode.NONE;
}
}
}
@Override
public String[] getXotsClassNames() {
Document iconDoc = getDocument();
if (iconDoc != null && iconDoc.hasItem("$Xots")) {
String[] xotsClassNames = iconDoc.getItemValue("$Xots", String[].class);
if (xotsClassNames != null) {
return xotsClassNames;
}
}
return new String[] {};
}
}