/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.apache.batik.css.dom;
import org.apache.batik.css.engine.CSSEngine;
import org.apache.batik.css.engine.StyleDeclaration;
import org.apache.batik.css.engine.StyleDeclarationProvider;
import org.apache.batik.css.engine.value.Value;
A class for SVG style declarations that store their properties in a StyleDeclaration
. Author: Cameron McCormack Version: $Id: CSSOMStoredStyleDeclaration.java 1733416 2016-03-03 07:07:13Z gadams $
/**
* A class for SVG style declarations that store their properties in a
* {@link org.apache.batik.css.engine.StyleDeclaration}.
*
* @author <a href="mailto:cam%40mcc%2eid%2eau">Cameron McCormack</a>
* @version $Id: CSSOMStoredStyleDeclaration.java 1733416 2016-03-03 07:07:13Z gadams $
*/
public abstract class CSSOMStoredStyleDeclaration
extends CSSOMSVGStyleDeclaration
implements CSSOMStyleDeclaration.ValueProvider,
CSSOMStyleDeclaration.ModificationHandler,
StyleDeclarationProvider {
The object storing the properties.
/**
* The object storing the properties.
*/
protected StyleDeclaration declaration;
Creates a new CSSOMStoredStyleDeclaration.
/**
* Creates a new CSSOMStoredStyleDeclaration.
*/
public CSSOMStoredStyleDeclaration(CSSEngine eng) {
super(null, null, eng);
valueProvider = this;
setModificationHandler(this);
}
Returns the object storing the properties of this style declaration.
/**
* Returns the object storing the properties of this style declaration.
*/
public StyleDeclaration getStyleDeclaration() {
return declaration;
}
Sets the object storing the properties of this style declaration.
/**
* Sets the object storing the properties of this style declaration.
*/
public void setStyleDeclaration(StyleDeclaration sd) {
declaration = sd;
}
// ValueProvider /////////////////////////////////////////////////////////
Returns the current value associated with this object.
/**
* Returns the current value associated with this object.
*/
public Value getValue(String name) {
int idx = cssEngine.getPropertyIndex(name);
for (int i = 0; i < declaration.size(); i++) {
if (idx == declaration.getIndex(i)) {
return declaration.getValue(i);
}
}
return null;
}
Tells whether the given property is important.
/**
* Tells whether the given property is important.
*/
public boolean isImportant(String name) {
int idx = cssEngine.getPropertyIndex(name);
for (int i = 0; i < declaration.size(); i++) {
if (idx == declaration.getIndex(i)) {
return declaration.getPriority(i);
}
}
return false;
}
Returns the text of the declaration.
/**
* Returns the text of the declaration.
*/
public String getText() {
return declaration.toString(cssEngine);
}
Returns the length of the declaration.
/**
* Returns the length of the declaration.
*/
public int getLength() {
return declaration.size();
}
Returns the value at the given.
/**
* Returns the value at the given.
*/
public String item(int idx) {
return cssEngine.getPropertyName(declaration.getIndex(idx));
}
}