aboutsummaryrefslogtreecommitdiffstats
path: root/theme-compiler/src/com/vaadin/sass/internal/tree/ImportNode.java
diff options
context:
space:
mode:
authorMarc Englund <marc@vaadin.com>2012-11-23 13:21:49 +0200
committerVaadin Code Review <review@vaadin.com>2012-11-23 11:47:42 +0000
commitfa7da722662de5ead99226189ca963afebdf5446 (patch)
tree7a6d87dd6ddf2ec6922cc10833a260d9340115eb /theme-compiler/src/com/vaadin/sass/internal/tree/ImportNode.java
parent1c400f042b32046a4becacfb856db4829bd0515d (diff)
downloadvaadin-framework-fa7da722662de5ead99226189ca963afebdf5446.tar.gz
vaadin-framework-fa7da722662de5ead99226189ca963afebdf5446.zip
Make most of the sass compiler API internal, fixes #10339
Change-Id: Ia783142aa96665a26491b659a387490883875d37
Diffstat (limited to 'theme-compiler/src/com/vaadin/sass/internal/tree/ImportNode.java')
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/tree/ImportNode.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/ImportNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/ImportNode.java
new file mode 100644
index 0000000000..01fa5008f3
--- /dev/null
+++ b/theme-compiler/src/com/vaadin/sass/internal/tree/ImportNode.java
@@ -0,0 +1,80 @@
+/*
+ * 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.internal.tree;
+
+import org.w3c.css.sac.SACMediaList;
+
+import com.vaadin.sass.internal.ScssStylesheet;
+import com.vaadin.sass.internal.visitor.ImportNodeHandler;
+
+public class ImportNode extends Node {
+ private static final long serialVersionUID = 5671255892282668438L;
+
+ private String uri;
+ private SACMediaList ml;
+ private boolean isURL;
+
+ public ImportNode(String uri, SACMediaList ml, boolean isURL) {
+ super();
+ this.uri = uri;
+ this.ml = ml;
+ this.isURL = isURL;
+ }
+
+ public boolean isPureCssImport() {
+ return (isURL || uri.endsWith(".css") || uri.startsWith("http://") || hasMediaQueries());
+ }
+
+ private boolean hasMediaQueries() {
+ return (ml != null && ml.getLength() >= 1 && !"all".equals(ml.item(0)));
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder("@import ");
+ if (isURL) {
+ builder.append("url(").append(uri).append(")");
+ } else {
+ builder.append("\"").append(uri).append("\"");
+ }
+ if (hasMediaQueries()) {
+ for (int i = 0; i < ml.getLength(); i++) {
+ builder.append(" ").append(ml.item(i));
+ }
+ }
+ builder.append(";");
+ return builder.toString();
+ }
+
+ public String getUri() {
+ return uri;
+ }
+
+ public void setUri(String uri) {
+ this.uri = uri;
+ }
+
+ public SACMediaList getMl() {
+ return ml;
+ }
+
+ @Override
+ public void traverse() {
+ // TODO shouldn't be reached with current setup, try anyway?
+ ImportNodeHandler.traverse((ScssStylesheet) getParentNode());
+ }
+}