
w3c.css.atrules.css2.AtRulePage Maven / Gradle / Ivy
//
// Author: Yves Lafon
//
// (c) COPYRIGHT MIT, ERCIM, Keio, Beihang, 2018.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.atrules.css2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import java.util.ArrayList;
/**
* This class manages all page selectors defined in CSS2
*/
public class AtRulePage extends org.w3c.css.atrules.css.AtRulePage {
static final String[] _pseudo = {
":left", ":right", ":first"
};
/*
* Sets the name of the page
* name will be a pseudo name :first, :left, :right
* or a random name without semi-colon at the beginning
*/
public AtRulePage addSelector(String name, ArrayList pseudo, ApplContext ac)
throws InvalidParamException {
if (names == null) {
names = new ArrayList<>();
} else {
// we allow only one value,
throw new InvalidParamException("notversion", name, ac.getCssVersionString(), ac);
}
if (pseudos == null) {
pseudos = new ArrayList<>();
}
names.add(name);
if ((pseudo != null) && pseudo.size() > 1) {
// and only one pseudo at most.
throw new InvalidParamException("notversion", pseudo.toString(), ac.getCssVersionString(), ac);
}
// second check, that it is in the list
if (pseudo != null && !pseudo.isEmpty()) {
String p = pseudo.get(0);
for (String _p : _pseudo) {
if (_p.equals(p)) {
pseudos.add(pseudo);
return this;
}
}
} else {
pseudos.add(pseudo);
return this;
}
// failed...
throw new InvalidParamException("notversion", pseudo.toString(), ac.getCssVersionString(), ac);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy