/******************************************************************************* * Copyright (c) 2013, 2014 Red Hat, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat Inc. - initial API and implementation and/or initial documentation *******************************************************************************/ package org.eclipse.thym.core.config; import static org.eclipse.thym.core.config.WidgetModelConstants.ACCESS_ATTR_BROWSER_ONLY; import static org.eclipse.thym.core.config.WidgetModelConstants.ACCESS_ATTR_ORIGIN; import static org.eclipse.thym.core.config.WidgetModelConstants.ACCESS_ATTR_SUBDOMAINS; import org.w3c.dom.Element; import org.w3c.dom.Node; /** * Access tag on the config.xml. * * @author Gorkem Ercan * */ public class Access extends AbstractConfigObject{ private Property<String> origin = new Property<String>(WidgetModelConstants.ACCESS_ATTR_ORIGIN); private Property<Boolean> subdomains = new Property<Boolean>(WidgetModelConstants.ACCESS_ATTR_SUBDOMAINS); private Property<Boolean> browserOnly = new Property<Boolean>(WidgetModelConstants.ACCESS_ATTR_BROWSER_ONLY); Access(Node node){ itemNode = (Element)node; origin.setValue(getNodeAttribute(node,null, ACCESS_ATTR_ORIGIN)); String str = getNodeAttribute(node, null, ACCESS_ATTR_SUBDOMAINS); if(str != null && !str.isEmpty()){ subdomains.setValue(Boolean.parseBoolean(str)); } str = getNodeAttribute(node, null, ACCESS_ATTR_BROWSER_ONLY); if(str != null && !str.isEmpty()){ browserOnly.setValue(Boolean.parseBoolean(str)); } } public String getOrigin() { return origin.getValue(); } public boolean isSubdomains() { if(subdomains.getValue() == null) return false; return subdomains.getValue().booleanValue(); } public boolean isBrowserOnly() { if(browserOnly.getValue() == null ) return false; return browserOnly.getValue().booleanValue(); } public void setSubdomains(boolean subdomains) { this.subdomains.setValue(Boolean.valueOf(subdomains)); setAttributeValue(itemNode, null, ACCESS_ATTR_SUBDOMAINS, Boolean.toString(subdomains)); } public void setBrowserOnly(boolean browserOnly) { this.browserOnly.setValue(browserOnly); setAttributeValue(itemNode, null, ACCESS_ATTR_BROWSER_ONLY, Boolean.toString(browserOnly)); } public void setOrigin(String origin) { this.origin.setValue(origin); setAttributeValue(itemNode, null, ACCESS_ATTR_ORIGIN, origin); } @Override public boolean equals(Object obj) { if(obj == null || !(obj instanceof Access)) return false; if(obj == this ) return true; Access that = (Access) obj; return equalField(that.getOrigin(), this.getOrigin()); } @Override public int hashCode() { int hash = super.hashCode(); if(getOrigin() != null ) hash *= getOrigin().hashCode(); return hash; } }