blob: 2c40ecabe539dd58e20e9f957d4ce894ccce90b2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 Oracle.
* 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:
* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.orm;
import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
import org.eclipse.jpt.core.internal.context.AbstractXmlContextNode;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly;
public class EclipseLinkOrmReadOnly extends AbstractXmlContextNode
implements ReadOnly
{
protected XmlReadOnly resource;
protected boolean defaultReadOnly;
protected Boolean specifiedReadOnly;
public EclipseLinkOrmReadOnly(OrmTypeMapping parent) {
super(parent);
}
public boolean isReadOnly() {
return (this.specifiedReadOnly == null) ? this.defaultReadOnly : this.specifiedReadOnly.booleanValue();
}
public boolean isDefaultReadOnly() {
return this.defaultReadOnly;
}
public void setDefaultReadOnly(boolean newValue) {
boolean oldValue = this.defaultReadOnly;
this.defaultReadOnly = newValue;
firePropertyChanged(DEFAULT_READ_ONLY_PROPERTY, oldValue, newValue);
}
public Boolean getSpecifiedReadOnly() {
return this.specifiedReadOnly;
}
public void setSpecifiedReadOnly(Boolean newSpecifiedReadOnly) {
Boolean oldSpecifiedReadOnly = this.specifiedReadOnly;
this.specifiedReadOnly = newSpecifiedReadOnly;
this.resource.setReadOnly(newSpecifiedReadOnly);
firePropertyChanged(SPECIFIED_READ_ONLY_PROPERTY, oldSpecifiedReadOnly, newSpecifiedReadOnly);
}
// **************** initialize/update **************************************
protected void initialize(XmlReadOnly resource, ReadOnly javaReadOnly) {
this.resource = resource;
this.defaultReadOnly = (javaReadOnly == null) ? false : javaReadOnly.isReadOnly();
this.specifiedReadOnly = resource.getReadOnly();
}
protected void update(XmlReadOnly resource, ReadOnly javaReadOnly) {
this.resource = resource;
setDefaultReadOnly((javaReadOnly == null) ? false : javaReadOnly.isReadOnly());
setSpecifiedReadOnly(resource.getReadOnly());
}
// **************** validation **************************************
public TextRange getValidationTextRange() {
return this.resource.getReadOnlyTextRange();
}
}