SAX2: DTDDeclHandler (minimalist position)

Elliotte Harold - java FAQ elharo at metalab.unc.edu
Thu Mar 25 21:36:08 GMT 1999


I haven't been paying too much attention to SAX, but today I was sitting
in my office waiting for students to drop by. They never do, except right
before and after exams, so I was a little bored and started reading
threads I'd normally filter, and I noticed something:


> 
> public interface DTDDeclHandler
> {
>     public final static int ATTRIBUTE_DEFAULTED = 1;
>     public final static int ATTRIBUTE_IMPLIED = 2;
>     public final static int ATTRIBUTE_REQUIRED = 3;
>     public final static int ATTRIBUTE_FIXED = 4;
> 

How committed are you to using integer constants? I know this is common,
but it tends to lend itself to bad code. Some people prefer a solution
like this:

public class AttributStatus {

  public final static AttributeStatus ATTRIBUTE_DEFAULTED = 
   new AttributeStatus();
  public final static AttributeStatus ATTRIBUTE_IMPLIED =
   new AttributeStatus();
  public final static AttributeStatus ATTRIBUTE_FIXED =   
   new AttributeStatus();
  public final static AttributeStatus ATTRIBUTE_REQUIRED =   
   new AttributeStatus();

  private AttributeStatus() {}

}

This creates four menmonic constants you want and gives them a checkable
type.  New constants can't be created because of the private constructor.
And there's no chance that anybody's going to write code like

  if (getAttributeStatus() == 1) {
   doSomething();
  }

Programmers are more or less forced to use the constants. What do you
think?

--
Elliotte Rusty Harold
elharo at metalab.unc.edu



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list