aboutsummaryrefslogtreecommitdiffstats
path: root/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'theme-compiler/src/com/vaadin/sass/tree/BlockNode.java')
-rw-r--r--theme-compiler/src/com/vaadin/sass/tree/BlockNode.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java b/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java
new file mode 100644
index 0000000000..e255b2a3e5
--- /dev/null
+++ b/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2011 Vaadin Ltd.
+ *
+ * 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 com.vaadin.sass.tree;
+
+import org.w3c.css.sac.SelectorList;
+
+import com.vaadin.sass.parser.SelectorListImpl;
+import com.vaadin.sass.selector.SelectorUtil;
+import com.vaadin.sass.util.Clonable;
+import com.vaadin.sass.util.DeepCopy;
+
+public class BlockNode extends Node implements Clonable {
+
+ private static final long serialVersionUID = 5742962631468325048L;
+
+ SelectorList selectorList;
+
+ public BlockNode(SelectorList selectorList) {
+ this.selectorList = selectorList;
+ }
+
+ public SelectorList getSelectorList() {
+ return selectorList;
+ }
+
+ public void setSelectorList(SelectorList selectorList) {
+ this.selectorList = selectorList;
+ }
+
+ public String toString(boolean indent) {
+ StringBuilder string = new StringBuilder();
+ string.append(SelectorUtil.toString(selectorList));
+ string.append(" {\n");
+ for (Node child : children) {
+ if (indent) {
+ string.append("\t");
+ }
+ string.append("\t" + child.toString() + "\n");
+ }
+ if (indent) {
+ string.append("\t");
+ }
+ string.append("}");
+ return string.toString();
+ }
+
+ @Override
+ public String toString() {
+ return toString(false);
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+
+ SelectorListImpl clonedSelectorList = null;
+
+ if (selectorList != null) {
+ clonedSelectorList = new SelectorListImpl();
+ for (int i = 0; i < selectorList.getLength(); i++) {
+ clonedSelectorList.addSelector(selectorList.item(i));
+ }
+ }
+ final BlockNode clone = new BlockNode(clonedSelectorList);
+ for (Node child : getChildren()) {
+ clone.getChildren().add((Node) DeepCopy.copy(child));
+ }
+ return clone;
+ }
+
+}