|
Authored by: frederik on Thursday, February 14 2013 @ 06:19 PM EST |
This could be from an Interface or method declaration:
public
abstract void verify(PublicKey key, String sigProvider) throws
CertificateException, NoSuchAlgorithmException, InvalidKeyException,
NoSuchProviderException, SignatureException
If I wanted to
implement this in a compatible way, my creative freedom in the declaration would
be:
- key - I could name it something else. It is a key, so
calling it key makes most sense. It is called key in the
controlling interface, so calling it anything else, while possible, would
confuse.
- sigProvider - it is a signature provider. I could call it
"string", but that would be confusing. I could call it signatureProvider, but
see above.
- If this is an interface, I could leave out the abstract.
If it is a cmopatible method, the abstract would be required.
- I could
change the order in which the exceptions are listed.
Everything else is
required to make it work. Thus, this is almost only function and even for the
little that could be expression, function (compatibility with what using
developers know/remember) in practice dictates.
public abstract
class DatagramChannel extends AbstractSelectableChannel implements ByteChannel,
ScatteringByteChannel, GatheringByteChannel {
This defines a
class that is abstract, i.e. it is meant for sub-classing and
there are some methods not implemented. It is accessible from outside the
package (public). It is called DatagramChannel, a name that
needs to remain to make programs that use it work. It extends a class
AbstractSelectableChannel. Nothing changeable. It implements a
list of 3 interfaces (ByteChannel, ScatteringByteChannel,
GatheringByteChannnel), which it must do to work. The names of these
interfaces are given.
The only room for "expression" is that the order (not
the names!) of the implemented interface names could be changed. It is obvious
to list ByteChannel first, since the other two are indirect subinterfaces
thereof. Changing the order would not accomplish anything other than confuse.
Thus, here as well, there is no space for expression and creativity. The
entire text is dictated by function.
In general, any implementation of any
part of java SHOULD use the exact (verbatim) same class declarations,
interface declarations and method declarations. Furthermore, they MUST be
identical, except for a few possible variations as exemplified above. [ Reply to This | Parent | # ]
|
|
Authored by: frederik on Thursday, February 14 2013 @ 06:42 PM EST |
Ann Droid writes a book. To tell her story, she uses letters strung together
into words, words strung together into sentences. Readers find her story
useful.
- Ann is sued by Big Bird for copying the letters "A" and
"a".
- Ann is sued by J.K. Rowling for copying the word "wizard". Clearly, it
is not an accident that the letters are combined just so. Ann could have used
"magician" to express the same concept. "Wizard" appears multiple times in J.K.
Rowling's copyrighted works. Furthermore, the "wizard" uses a "wand" to cast
"spells".
- Ann is sued by Company for titling the first chapter "Foreword",
the second chapter "Introduction" and the last chapter "Acknowledgement". To
show how pervasive copying is, Company also points to the plagiarism of "Once
upon a time, there was", "I wish to thank", "too numerous to count", "Similarity
to any characters, real or imagined" , "solely the responsibility of the
author". All these are verbatim copies of text from Company's copyrighted
works.
- Ann is sued in several separate actions in the United States District
Court for the Eastern District of Texas for preparing the text "with a
computer", for printing on both sides of the paper an for using the word
"troll".
[ Reply to This | Parent | # ]
|
|
|
|
|