- From: Yves Lafon via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 14 Sep 2011 16:31:52 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2002/css-validator/org/w3c/css/util
In directory hutz:/tmp/cvs-serv24952/util
Modified Files:
ApplContext.java
Added Files:
CssProfile.java CssVersion.java
Log Message:
reworking profile/version check ot avoid doing too many string comparisons, and user defaulting
--- NEW FILE: CssVersion.java ---
// $Id: CssVersion.java,v 1.1 2011/09/14 16:31:50 ylafon Exp $
//
// (c) COPYRIGHT MIT, ERCIM and Keio University, 2011
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.util;
public enum CssVersion {
CSS1("css1"), CSS2("css2"), CSS21("css21"), CSS3("css3");
private final String version;
CssVersion(String version) {
this.version = version;
}
public String toString() {
return version;
}
static CssVersion resolve(ApplContext ac, String s)
// throws InvalidParamException {
{
for (CssVersion v : CssVersion.values()) {
if (v.toString().equals(s)) {
return v;
}
}
// TODO this or get the default ???
// throw new InvalidParamException("invalid-level", s, ac);
return getDefault();
}
// get the default version of CSS
static public CssVersion getDefault() {
return CSS21;
}
}
--- NEW FILE: CssProfile.java ---
// $Id: CssProfile.java,v 1.1 2011/09/14 16:31:50 ylafon Exp $
//
// (c) COPYRIGHT MIT, ERCIM and Keio University, 2011
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.util;
public enum CssProfile {
NONE("none"), SVG("svg"), SVGBASIC("svgbasic"), SVGTINY("svgtiny"),
MOBILE("mobile"), TV("tv"), ATSCTV("atsc-tv");
private final String profile;
CssProfile(String version) {
this.profile = version;
}
public String toString() {
return profile;
}
static CssProfile resolve(ApplContext ac, String s)
// throws InvalidParamException {
{
for (CssProfile p : CssProfile.values()) {
if (p.toString().equals(s)) {
return p;
}
}
// TODO this or get the default ???
// throw new InvalidParamException("invalid-level", s, ac);
return NONE;
}
}
Index: ApplContext.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/util/ApplContext.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- ApplContext.java 29 Aug 2011 07:21:01 -0000 1.19
+++ ApplContext.java 14 Sep 2011 16:31:50 -0000 1.20
@@ -59,8 +59,8 @@
String lang;
Messages msgs;
Frame frame;
- String cssversion;
- String profile;
+ CssVersion version = CssVersion.getDefault();
+ CssProfile profile = CssProfile.NONE;
String input;
Class cssselectorstyle;
int origin = -1;
@@ -156,27 +156,42 @@
}
public void setCssVersion(String cssversion) {
- this.cssversion = cssversion;
+ version = CssVersion.resolve(this, cssversion);
}
- public String getCssVersion() {
- if (cssversion == null) {
- cssversion = "css2";
- }
- return cssversion;
+ public String getCssVersionString() {
+ return version.toString();
+ }
+
+ public CssVersion getCssVersion() {
+ return version;
}
public void setProfile(String profile) {
- this.profile = profile;
+ this.profile = CssProfile.resolve(this, profile);
}
- public String getProfile() {
- if (profile == null) {
- return "";
- }
+ public CssProfile getCssProfile() {
return profile;
}
+ public String getProfileString() {
+ return profile.toString();
+ }
+
+ public void setCssVersionAndProfile(String spec) {
+ // for things like SVG, version will be set to the default one
+ // CSS21 in that case, as defined in CssVersion
+ // and profile will be resolved to svg.
+ //
+ // if the version resolve then profile will default to NONE
+
+ // TODO should we check profile first and if SVG or MOBILE
+ // set specific version of CSS (like CSS2 and not CSS21 for MOBILE) ?
+ version = CssVersion.resolve(this, spec);
+ profile = CssProfile.resolve(this, spec);
+ }
+
public void setOrigin(int origin) {
this.origin = origin;
}
Received on Wednesday, 14 September 2011 16:32:07 UTC