You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2018/07/28 08:40:02 UTC

[1/3] jena git commit: Remove blank line

Repository: jena
Updated Branches:
  refs/heads/xsd-qname [created] 3f0fa025c


Remove blank line


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/7f36af48
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/7f36af48
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/7f36af48

Branch: refs/heads/xsd-qname
Commit: 7f36af480e61f5cf4fce300ca946d8eab7f4a73c
Parents: 6e85e6c
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jul 28 09:07:22 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jul 28 09:07:22 2018 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/jena/fuseki/FusekiConfigException.java | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/7f36af48/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java
index 5e1b018..69d1e87 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java
@@ -18,7 +18,6 @@
 
 package org.apache.jena.fuseki;
 
-
 public class FusekiConfigException extends FusekiException
 {
     public FusekiConfigException(String msg, Throwable cause)    { super(msg, cause) ; }


[3/3] jena git commit: JENA-1579: Include implementation for QNameDV.

Posted by an...@apache.org.
JENA-1579: Include implementation for QNameDV.

QNameDV is also used for xsd:NOTATION.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3f0fa025
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3f0fa025
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3f0fa025

Branch: refs/heads/xsd-qname
Commit: 3f0fa025c7f965e3447abc3b63d48a2d0e2784c7
Parents: 42b2ef1
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jul 28 09:29:07 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jul 28 09:29:07 2018 +0100

----------------------------------------------------------------------
 .../apache/jena/datatypes/xsd/XSDDatatype.java  |   2 +-
 .../jena/ext/xerces/impl/dv/xs/QNameDV.java     | 190 +++++++++---------
 .../ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java |  12 +-
 .../org/apache/jena/ext/xerces/xni/QName.java   | 198 +++++++++++++++++++
 .../jena/ext/xerces/xs/datatypes/XSQName.java   |  36 ++++
 5 files changed, 338 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java b/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java
index 3319c8e..186ea8e 100644
--- a/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java
+++ b/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java
@@ -167,7 +167,7 @@ public class XSDDatatype extends BaseDatatype {
     /** Datatype representing xsd:dateTime */
     public static final XSDDatatype XSDdateTime = new XSDDateTimeType("dateTime");
 
-    /** Datatype representing xsd:dateTime */
+    /** Datatype representing xsd:dateTimeStamp */
     public static final XSDDatatype XSDdateTimeStamp = new XSDDateTimeStampType("dateTimeStamp");
 
     /** Datatype representing xsd:duration */

http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java
index 123c165..7887948 100644
--- a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java
@@ -17,96 +17,100 @@
 
 package org.apache.jena.ext.xerces.impl.dv.xs;
 
-// UNUSED
-public class QNameDV {}
-//
-//import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
-//import org.apache.xerces.impl.dv.ValidationContext;
-//import org.apache.xerces.util.XMLChar;
-//import org.apache.xerces.xni.QName;
-//import org.apache.xerces.xs.datatypes.XSQName;
-//
-///**
-// * Represent the schema type "QName" and "NOTATION"
-// *
-// * {@literal @xerces.internal} 
-// *
-// * @author Neeraj Bajaj, Sun Microsystems, inc.
-// * @author Sandy Gao, IBM
-// *
-// * @version $Id: QNameDV.java 701915 2008-10-06 02:39:42Z mrglavas $
-// */
-//public class QNameDV extends TypeValidator {
-//
-//    private static final String EMPTY_STRING = "".intern();
-//
-//    public short getAllowedFacets() {
-//        return (XSSimpleTypeDecl.FACET_LENGTH | XSSimpleTypeDecl.FACET_MINLENGTH | XSSimpleTypeDecl.FACET_MAXLENGTH | XSSimpleTypeDecl.FACET_PATTERN | XSSimpleTypeDecl.FACET_ENUMERATION | XSSimpleTypeDecl.FACET_WHITESPACE);
-//    }
-//
-//    public Object getActualValue(String content, ValidationContext context)
-//        throws InvalidDatatypeValueException {
-//
-//        // "prefix:localpart" or "localpart"
-//        // get prefix and local part out of content
-//        String prefix, localpart;
-//        int colonptr = content.indexOf(":");
-//        if (colonptr > 0) {
-//            prefix = context.getSymbol(content.substring(0,colonptr));
-//            localpart = content.substring(colonptr+1);
-//        } else {
-//            prefix = EMPTY_STRING;
-//            localpart = content;
-//        }
-//
-//        // both prefix (if any) a nd localpart must be valid NCName
-//        if (prefix.length() > 0 && !XMLChar.isValidNCName(prefix))
-//            throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"});
-//
-//        if(!XMLChar.isValidNCName(localpart))
-//            throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"});
-//
-//        // resove prefix to a uri, report an error if failed
-//        String uri = context.getURI(prefix);
-//        if (prefix.length() > 0 && uri == null)
-//            throw new InvalidDatatypeValueException("UndeclaredPrefix", new Object[]{content, prefix});
-//
-//        return new XQName(prefix, context.getSymbol(localpart), context.getSymbol(content), uri);
-//
-//    }
-//
-//    // REVISIT: qname and notation shouldn't support length facets.
-//    //          now we just return the length of the rawname
-//    public int getDataLength(Object value) {
-//        return ((XQName)value).rawname.length();
-//    }
-//
-//    /**
-//     * represent QName data
-//     */
-//    private static final class XQName extends QName implements XSQName {
-//        /** Constructs a QName with the specified values. */
-//        public XQName(String prefix, String localpart, String rawname, String uri) {
-//            setValues(prefix, localpart, rawname, uri);
-//        } // <init>(String,String,String,String)
-//
-//        /** Returns true if the two objects are equal. */
-//        public boolean equals(Object object) {
-//            if (object instanceof QName) {
-//                QName qname = (QName)object;
-//                return uri == qname.uri && localpart == qname.localpart;
-//            }
-//            return false;
-//        } // equals(Object):boolean
-//
-//        public String toString() {
-//            return rawname;
-//        }
-//        public javax.xml.namespace.QName getJAXPQName() {
-//            return new javax.xml.namespace.QName(uri, localpart, prefix);
-//        }
-//        public QName getXNIQName() {
-//            return this;
-//        }
-//    }
-//} // class QNameDVDV
+import org.apache.jena.ext.xerces.impl.dv.InvalidDatatypeValueException;
+import org.apache.jena.ext.xerces.impl.dv.ValidationContext;
+import org.apache.jena.ext.xerces.util.XMLChar;
+import org.apache.jena.ext.xerces.xni.QName;
+import org.apache.jena.ext.xerces.xs.datatypes.XSQName;
+
+/**
+ * Represent the schema type "QName" and "NOTATION"
+ *
+ * {@literal @xerces.internal} 
+ *
+ * @author Neeraj Bajaj, Sun Microsystems, inc.
+ * @author Sandy Gao, IBM
+ *
+ * @version $Id: QNameDV.java 701915 2008-10-06 02:39:42Z mrglavas $
+ */
+public class QNameDV extends TypeValidator {
+
+    private static final String EMPTY_STRING = "".intern();
+
+    @Override
+    public short getAllowedFacets() {
+        return (XSSimpleTypeDecl.FACET_LENGTH | XSSimpleTypeDecl.FACET_MINLENGTH | XSSimpleTypeDecl.FACET_MAXLENGTH | XSSimpleTypeDecl.FACET_PATTERN | XSSimpleTypeDecl.FACET_ENUMERATION | XSSimpleTypeDecl.FACET_WHITESPACE);
+    }
+
+    @Override
+    public Object getActualValue(String content, ValidationContext context)
+        throws InvalidDatatypeValueException {
+
+        // "prefix:localpart" or "localpart"
+        // get prefix and local part out of content
+        String prefix, localpart;
+        int colonptr = content.indexOf(":");
+        if (colonptr > 0) {
+            prefix = context.getSymbol(content.substring(0,colonptr));
+            localpart = content.substring(colonptr+1);
+        } else {
+            prefix = EMPTY_STRING;
+            localpart = content;
+        }
+
+        // both prefix (if any) a nd localpart must be valid NCName
+        if (prefix.length() > 0 && !XMLChar.isValidNCName(prefix))
+            throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"});
+
+        if(!XMLChar.isValidNCName(localpart))
+            throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"});
+
+        // resove prefix to a uri, report an error if failed
+        String uri = context.getURI(prefix);
+        if (prefix.length() > 0 && uri == null)
+            throw new InvalidDatatypeValueException("UndeclaredPrefix", new Object[]{content, prefix});
+
+        return new XQName(prefix, context.getSymbol(localpart), context.getSymbol(content), uri);
+
+    }
+
+    // REVISIT: qname and notation shouldn't support length facets.
+    //          now we just return the length of the rawname
+    @Override
+    public int getDataLength(Object value) {
+        return ((XQName)value).rawname.length();
+    }
+
+    /**
+     * represent QName data
+     */
+    private static final class XQName extends QName implements XSQName {
+        /** Constructs a QName with the specified values. */
+        public XQName(String prefix, String localpart, String rawname, String uri) {
+            setValues(prefix, localpart, rawname, uri);
+        } // <init>(String,String,String,String)
+
+        /** Returns true if the two objects are equal. */
+        @Override
+        public boolean equals(Object object) {
+            if (object instanceof QName) {
+                QName qname = (QName)object;
+                return uri == qname.uri && localpart == qname.localpart;
+            }
+            return false;
+        } // equals(Object):boolean
+
+        @Override
+        public String toString() {
+            return rawname;
+        }
+        @Override
+        public javax.xml.namespace.QName getJAXPQName() {
+            return new javax.xml.namespace.QName(uri, localpart, prefix);
+        }
+        @Override
+        public QName getXNIQName() {
+            return this;
+        }
+    }
+} // class QNameDVDV

http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java
index f7ff2f7..5d4d493 100644
--- a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java
@@ -99,18 +99,18 @@ public class XSSimpleTypeDecl implements XSSimpleType, TypeInfo {
         new HexBinaryDV(),
         new Base64BinaryDV(),
         new AnyURIDV(),
-        null, //new QNameDV(), // QName datatype not supported (or relevant) to RDF / Apache Jena.
-        new PrecisionDecimalDV(), // XML Schema 1.1 type
-        null, //new QNameDV(),   // notation use the same one as qname
+        new QNameDV(),
+        new PrecisionDecimalDV(),   // XML Schema 1.1 type
+        new QNameDV(),              // NOTATION -- use the same one as qname
         new IDDV(),
         new IDREFDV(),
         new EntityDV(),
         new IntegerDV(),
         new ListDV(),
         new UnionDV(),
-        new YearMonthDurationDV(), // XML Schema 1.1 type
-        new DayTimeDurationDV(), // XML Schema 1.1 type
-        new AnyAtomicDV() // XML Schema 1.1 type
+        new YearMonthDurationDV(),  // XML Schema 1.1 type
+        new DayTimeDurationDV(),    // XML Schema 1.1 type
+        new AnyAtomicDV()           // XML Schema 1.1 type
     };
 
     static final short NORMALIZE_NONE = 0;

http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/ext/xerces/xni/QName.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/xni/QName.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/xni/QName.java
new file mode 100644
index 0000000..2bb58bc
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/xni/QName.java
@@ -0,0 +1,198 @@
+/*
+ * 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.jena.ext.xerces.xni;
+
+/**
+ * A structure that holds the components of an XML Namespaces qualified
+ * name.
+ * <p>
+ * To be used correctly, the strings must be identical references for
+ * equal strings. Within the parser, these values are considered symbols
+ * and should always be retrieved from the <code>SymbolTable</code>.
+ *
+ * @see <a href="../../../../../xerces2/org/apache/xerces/util/SymbolTable.html">org.apache.xerces.util.SymbolTable</a>
+ *
+ * @author Andy Clark, IBM
+ *
+ * @version $Id: QName.java 447247 2006-09-18 05:23:52Z mrglavas $
+ */
+public class QName 
+    implements Cloneable {
+
+    //
+    // Data
+    //
+
+    /** 
+     * The qname prefix. For example, the prefix for the qname "a:foo"
+     * is "a".
+     */
+    public String prefix;
+
+    /** 
+     * The qname localpart. For example, the localpart for the qname "a:foo"
+     * is "foo".
+     */
+    public String localpart;
+
+    /** 
+     * The qname rawname. For example, the rawname for the qname "a:foo"
+     * is "a:foo".
+     */
+    public String rawname;
+
+    /** 
+     * The URI to which the qname prefix is bound. This binding must be
+     * performed by a XML Namespaces aware processor.
+     */
+    public String uri;
+
+    //
+    // Constructors
+    //
+
+    /** Default constructor. */
+    public QName() {
+        clear();
+    } // <init>()
+
+    /** Constructs a QName with the specified values. */
+    public QName(String prefix, String localpart, String rawname, String uri) {
+        setValues(prefix, localpart, rawname, uri);
+    } // <init>(String,String,String,String)
+
+    /** Constructs a copy of the specified QName. */
+    public QName(QName qname) {
+        setValues(qname);
+    } // <init>(QName)
+
+    //
+    // Public methods
+    //
+
+    /**
+     * Convenience method to set the values of the qname components.
+     * 
+     * @param qname The qualified name to be copied.
+     */
+    public void setValues(QName qname) {
+        prefix = qname.prefix;
+        localpart = qname.localpart;
+        rawname = qname.rawname;
+        uri = qname.uri;
+    } // setValues(QName)
+
+    /**
+     * Convenience method to set the values of the qname components.
+     * 
+     * @param prefix    The qname prefix. (e.g. "a")
+     * @param localpart The qname localpart. (e.g. "foo")
+     * @param rawname   The qname rawname. (e.g. "a:foo")
+     * @param uri       The URI binding. (e.g. "http://foo.com/mybinding")
+     */
+    public void setValues(String prefix, String localpart, String rawname, 
+                          String uri) {
+        this.prefix = prefix;
+        this.localpart = localpart;
+        this.rawname = rawname;
+        this.uri = uri;
+    } // setValues(String,String,String,String)
+
+    /** Clears the values of the qname components. */
+    public void clear() {
+        prefix = null;
+        localpart = null;
+        rawname = null;
+        uri = null;
+    } // clear()
+
+    //
+    // Cloneable methods
+    //
+
+    /** Returns a clone of this object. */
+    @Override
+    public Object clone() {
+        return new QName(this);
+    } // clone():Object
+
+    //
+    // Object methods
+    //
+
+    /** Returns the hashcode for this object. */
+    @Override
+    public int hashCode() {
+        if (uri != null) {
+            return uri.hashCode() + 
+                ((localpart != null) ? localpart.hashCode() : 0);
+        }
+        return (rawname != null) ? rawname.hashCode() : 0;
+    } // hashCode():int
+
+    /** Returns true if the two objects are equal. */
+    @Override
+    public boolean equals(Object object) {
+        if (object instanceof QName) {
+            QName qname = (QName)object;
+            if (qname.uri != null) {
+                return uri == qname.uri && localpart == qname.localpart;
+            }
+            else if (uri == null) {
+                return rawname == qname.rawname;
+            }
+            // fall through and return not equal
+        }
+        return false;
+    } // equals(Object):boolean
+
+    /** Returns a string representation of this object. */
+    @Override
+    public String toString() {
+
+        StringBuffer str = new StringBuffer();
+        boolean comma = false;
+        if (prefix != null) {
+            str.append("prefix=\"").append(prefix).append('"');
+            comma = true;
+        }
+        if (localpart != null) {
+            if (comma) {
+                str.append(',');
+            }
+            str.append("localpart=\"").append(localpart).append('"');
+            comma = true;
+        }
+        if (rawname != null) {
+            if (comma) {
+                str.append(',');
+            }
+            str.append("rawname=\"").append(rawname).append('"');
+            comma = true;
+        }
+        if (uri != null) {
+            if (comma) {
+                str.append(',');
+            }
+            str.append("uri=\"").append(uri).append('"');
+        }
+        return str.toString();
+
+    } // toString():String
+
+} // class QName

http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/ext/xerces/xs/datatypes/XSQName.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/xs/datatypes/XSQName.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/xs/datatypes/XSQName.java
new file mode 100644
index 0000000..33692e6
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/xs/datatypes/XSQName.java
@@ -0,0 +1,36 @@
+/*
+ * 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.jena.ext.xerces.xs.datatypes;
+
+/**
+ * Interface to expose QName actual values
+ * 
+ * @author Ankit Pasricha, IBM
+ */
+public interface XSQName {
+    
+    /**
+     * @return org.apache.xerces.xni.QName class instance
+     */
+    public org.apache.jena.ext.xerces.xni.QName getXNIQName();
+    
+    /**
+     * @return javax.xml.namespace.QName class instance
+     */
+    public javax.xml.namespace.QName getJAXPQName();
+}


[2/3] jena git commit: Add missing LogCtl operation

Posted by an...@apache.org.
Add missing LogCtl operation


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/42b2ef1b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/42b2ef1b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/42b2ef1b

Branch: refs/heads/xsd-qname
Commit: 42b2ef1b7a0a832ff0c458ff375c17db71f70de5
Parents: 7f36af4
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jul 28 09:08:38 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jul 28 09:08:38 2018 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/jena/atlas/logging/LogCtl.java  | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/42b2ef1b/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java b/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java
index 46dc105..a3aa9b8 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java
@@ -129,6 +129,14 @@ public class LogCtl {
      * Turn on a logger (all levels). Works for Log4j and Java logging as the
      * logging provider to Apache common logging or slf4j.
      */
+    static public void disable(Logger logger) {
+        setLevel(logger.getName(), "OFF") ;
+    }
+
+    /**
+     * Turn on a logger (all levels). Works for Log4j and Java logging as the
+     * logging provider to Apache common logging or slf4j.
+     */
     static public void disable(String logger) {
         setLevel(logger, "OFF") ;
     }