| How to separate interface from implementation when using JARs? |
|
 |
Index ‹ java-programmer
|
- Previous
- 3
- JTable model's issueHi:
I have got a JTable and its cells are JPanel's (to make Java2D inside)
displaying numbers.
The problem is that I want the cells to be editable, so when you click on
the cell, you could write some number, and the new one be redisplayed.
I wrote a method called setValue() on the AbstractTableModel class which
updates the selected JPanel numerical value, but there is a little problem:
when you click a cell, you get a line full of info about the JPanel, so if
you want to enter a number, you have to clear the cell to avoid getting an
error.
so the question is, is there a way to avoid the info to get displayed? note
that my AbstractTableModel getValue() method needs to return a JPanel..
Thanks !!
--
PGR
- 5
- Does it usually take a day for post to appear??I have posted a thread yesterday and although the message told me that
my post will appear "momentarily" it didn't appear until today. I have
posted a reply to the psot and I have now waited for at least 4-5hours
and it hasn't appeared yet. I have posted in other forums before and
it took usually 15 minutes or less for the psot to appear. Is it
normal for this forum that it takes a day or two?
I just want to know which VM to install for Swing for IE. I am using
Borland JBuilder 2006. If anyone happens to look at this before I get
any replies for the other posts.
Thanks for any help.
- 5
- Simple GUI application attempted.Some assistance in the development of a simple GUI application would
be appreciated.
Not long ago I completed a computer science degree, and right now I
want to get a bit more experience and confidence by trying to write
applications that are just a bit beyond what I had to write at
university. However, in the early stages of designing the application
that I have in mind, I have hit a brick wall. I can't write it the way
that I thought at first would work, because of the ColorModel classes
having no 'set' methods, so I'd like to know what _will_ work.
Please imagine the following scenario (this is not a description of
the application, but it is a simpler illustration of the same
problem). Suppose you are writing a graphical application that
simulates a digit on a traditional LCD display, as for example on
a handheld calculator. This should be achievable using a Raster that
encodes something akin to the following:
011110
200003
200003
044440
500006
500006
077770
and a changeable ColorModel, in which 0 always represents the
BACKGROUND colour and the other indexes 1 to 7 represent colours that
we will call ON and OFF. For example, if the digit to be displayed is
"4", then indexes 2, 3, 4 and 6 will be set to represent colour ON
whilst indexes 1, 5 and 7 will be set to represent colour OFF.
Similarly, if the digit to be displayed is "3", then indexes 1, 3, 4,
5 and 7 will represent ON and indexes 2 and 6 will represent OFF.
It would be nice if the ColorModel classes had 'set' methods, because
then you could make the relevant class (let's call it
DigitDisplayImage) a subclass of Image, and the rest would be elegant
and easy. But it doesn't, although I feel there _should_ be a similar
solution. Then you could write setIndex(int, Color) methods in the
DigitDisplayImage class, after which the following code example would
work to display the digit "4".
digitDisplay.setIndex(1, OFF);
digitDisplay.setIndex(2, ON);
digitDisplay.setIndex(3, ON);
digitDisplay.setIndex(4, ON);
digitDisplay.setIndex(5, OFF);
digitDisplay.setIndex(6, ON);
digitDisplay.setIndex(7, OFF);
This would be lovely.
In the absence of ColorModel classes with 'set' methods, how, in
practise, should I go about achieving a similar functionality? (In the
real application, the corresponding object needs a lot more than eight
index values and will be called upon to display far more than just
digits between 0 and 9, but I think it is better to discuss the
problem with reference to this simplified example.)
Thanks,
Adrian.
- 7
- GUI designed with NetBeans 4.1 has repaint issuesI used netbeans to make a few forms, and all the components seem to
vanish anytime an event happens. For instance, if I select an item in
a comboBox all of the components disappear until I select each one
(via tab/shift-tab).
Any ideas?
Thanks in advance,
Zach
- 7
- Using Java To Implement RSA AlgorithmHi I'm looking for SOME advice on how to simulate the following:
http://i71.photobucket.com/albums/i140/carpinate/RSA.jpg
http://i71.photobucket.com/albums/i140/carpinate/RSA2.jpg
Ive done this so far:
package RSAalgorithm;
public class SecurityAlgorithm {
public static char[] StartSymbolic =
{'A','B','C','D','E','F','G','H','I','J',
'K','L','M','N','O','P','Q','R','S','T',
'U','V','W','X','Y','Z'};
public static int[] numeric =
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,26};
public static void main(String[] args) {
long P3 = 0;
long P3mod33=0;
long C7=0;
long C7mod33=0;
for(int counter = 0; counter < numeric.length; counter++){
for(int i = 0; i < StartSymbolic.length; i++) {
int temp = numeric[counter];
P3 = (long) (temp*temp*temp);
P3mod33 = P3%33;
C7 = (long)
(P3mod33*P3mod33*P3mod33*P3mod33*P3mod33*P3mod33*P3mod33);
int tp = numeric[counter];
C7mod33 = C7%33;
}
System.out.println("*******************************************");
//System.out.println(StartSymbolic[i]);
System.out.println("Numeric: " +
numeric[counter]);
System.out.println("P3: " +P3);
System.out.println("P3mod33: " + P3mod33);
System.out.println("C7: " +C7);
System.out.println("C7mod33:" + C7mod33);
// System.out.println(StartSymbolic[i]);
System.out.println("*******************************************");
}
}
}
Output:
*******************************************
Numeric: 1
P3: 1
P3mod33: 1
C7: 1
C7mod33:1
*******************************************
*******************************************
Numeric: 2
P3: 8
P3mod33: 8
C7: 2097152
C7mod33:2
*******************************************
*******************************************
Numeric: 3
P3: 27
P3mod33: 27
C7: 10460353203
C7mod33:3
*******************************************
*******************************************
Numeric: 4
P3: 64
P3mod33: 31
C7: 27512614111
C7mod33:4
*******************************************
*******************************************
Numeric: 5
P3: 125
P3mod33: 26
C7: 8031810176
C7mod33:5
*******************************************
*******************************************
Numeric: 6
P3: 216
P3mod33: 18
C7: 612220032
C7mod33:6
*******************************************
*******************************************
Numeric: 7
P3: 343
P3mod33: 13
C7: 62748517
C7mod33:7
*******************************************
*******************************************
Numeric: 8
P3: 512
P3mod33: 17
C7: 410338673
C7mod33:8
*******************************************
*******************************************
Numeric: 9
P3: 729
P3mod33: 3
C7: 2187
C7mod33:9
*******************************************
*******************************************
Numeric: 10
P3: 1000
P3mod33: 10
C7: 10000000
C7mod33:10
*******************************************
*******************************************
Numeric: 11
P3: 1331
P3mod33: 11
C7: 19487171
C7mod33:11
*******************************************
*******************************************
Numeric: 12
P3: 1728
P3mod33: 12
C7: 35831808
C7mod33:12
*******************************************
*******************************************
Numeric: 13
P3: 2197
P3mod33: 19
C7: 893871739
C7mod33:13
*******************************************
*******************************************
Numeric: 14
P3: 2744
P3mod33: 5
C7: 78125
C7mod33:14
*******************************************
*******************************************
Numeric: 15
P3: 3375
P3mod33: 9
C7: 4782969
C7mod33:15
*******************************************
*******************************************
Numeric: 16
P3: 4096
P3mod33: 4
C7: 16384
C7mod33:16
*******************************************
*******************************************
Numeric: 17
P3: 4913
P3mod33: 29
C7: 17249876309
C7mod33:17
*******************************************
*******************************************
Numeric: 18
P3: 5832
P3mod33: 24
C7: 4586471424
C7mod33:18
*******************************************
*******************************************
Numeric: 19
P3: 6859
P3mod33: 28
C7: 13492928512
C7mod33:19
*******************************************
*******************************************
Numeric: 20
P3: 8000
P3mod33: 14
C7: 105413504
C7mod33:20
*******************************************
*******************************************
Numeric: 21
P3: 9261
P3mod33: 21
C7: 1801088541
C7mod33:21
*******************************************
*******************************************
Numeric: 22
P3: 10648
P3mod33: 22
C7: 2494357888
C7mod33:22
*******************************************
*******************************************
Numeric: 23
P3: 12167
P3mod33: 23
C7: 3404825447
C7mod33:23
*******************************************
*******************************************
Numeric: 24
P3: 13824
P3mod33: 30
C7: 21870000000
C7mod33:24
*******************************************
*******************************************
Numeric: 25
P3: 15625
P3mod33: 16
C7: 268435456
C7mod33:25
*******************************************
*******************************************
Numeric: 26
P3: 17576
P3mod33: 20
C7: 1280000000
C7mod33:26
*******************************************
I was looking to achieve what is shown in the 1st image.
I can get the numeric, P3, P3mod33, C7, C7mod33 to print out but not
the symbolic information for some reason?
I want to be able to allow the user to enter in a string then the
plaintext and ciphertext can be displayed.
Like this:
String input: SUZANNE
Output:
Plaintext: S U Z A N N E
Ciphertext: 28 21 20 1 5 5 26
Thanks.
- 7
- Problem understanding a java statement!Please could somebody help me understand what this statement is doing,
k = (k1 > s0) ? k1 : s0;
what is this statement doing?
what will k be equal to if
k1 = 3 and s0 = 2 ?
- 9
- looking for a Java decompilerHello!
Is there a good byte-code de-compiler in the ports? It does not
need to be fancy/GUI -- just a straghtforward .class->.java utility.
Thanks for any pointers. Thanks!
-mi
- 13
- modificare un modello della libreria jgraphAvete mai usato la libreria jgraph per i vostri progetti?
Devo graficare lo schema di un datawarehouse che ho in XML, e modificarlo
attraverso l'interazione dell'utente (per la modifica e la visualizzazione
sto cercando di usare jgraph).
Una volta modificato il grafico, devo salvare i dati nel file XML.
Il mio problema ?che riesco a visualizzare i dati XML nel grafico Jgraph, e
modificare quest'ultimo, ma a causa delle classi utilizzate
(DefaultGraphCell) non riesco a salvare queste trasformazioni in termini di
nodi del file XML.
Dalla documentazione in rete ho capito che devo estendere e modificare la
classe GraphModel e la classe DEfaultGraphCell, ma senza un esempio o
documentazione precisa non riesco a capire quali metodi devo sovrascrivere
e cosa devo modificare per ottenere il risultato voluto.
Per questo motivo sono bloccato da giorni nella mia tesi, e ci sto perdendo
un
po' la testa, vi prego di darmi una mano (anche dirmi dove devo leggere).
Grazie in anticipo!
- 14
- [Quantian-general] Weka Machine Learning Environment
Bob,
[ BTW I had to manually approve your post as you're not (yet ?) subscribed
here -- please consider subscribing to that you can post directly. ]
On 5 November 2005 at 12:09, email***@***.com wrote:
| I would be very interested in seeing the Weka machine learning environment
| added to a live-DVD, such as Quantian. Weka is a powerful, open-source
| data mining package with many artificial intelligence algrorithms, created
| at the University of Waikato in New Zealand. It is written in Java, and so
Sure, I'm aware of Weka and their book, but have never installed it as I find
Java so tedious to work with.
I also have limited time and bandwidth for figuring out suggested packages.
If you could help with Weka, for example by installing Knoppix 4.0.2
(possibly the cdrom version) to disk and then documenting what you to do to
install Weka, and make it work well, I'd be helped quite a bit. Ideally, of
course, would be a Debian package encapsulating all this. It may be
worthwhile mentioning this to the good folks over at debian-java -- cc'ed. [
Debian-java'ers, please CC us back directly on follow-ups. ]
| is platform independent. There is also a version that can be set up in a
| cluster configuration, called Cluster Weka.
I didn't know that. What messaging toolkit do they use? Something like PVM or
LAM, or something homegrown?
| If you are interested, the website is:
|
| http://www.cs.waikato.ac.nz/ml/weka/
|
| Your work on the Quantian project is marvelous, and I applaud your efforts,
| and your contribution to the open-source community.
Thanks for your interest in Quantian, and the kind words.
Cheers, Dirk
| Bob McPherson
|
|
| _______________________________________________
| Quantian-general mailing list
| email***@***.com
| http://lists.alioth.debian.org/mailman/listinfo/quantian-general
--
Statistics: The (futile) attempt to offer certainty about uncertainty.
-- Roger Koenker, 'Dictionary of Received Ideas of Statistics'
--
To UNSUBSCRIBE, email to email***@***.com
with a subject of "unsubscribe". Trouble? Contact email***@***.com
- 14
- Initialization order brain-damageHi y'all,
So after spending a particularly frustrating afternoon debugging
through constructors and browsing the Java Language Specification 3.0
in some detail, I have come to the conclusion that I actually know
nothing and need to ask a question:
What is the standard order of evaluation of expressions during object
construction w/rt constructors, super-constructors, and instance
variable initializers? Specifically with the code:
class A
{
AType a1 = new AType();
A() { aDoesSomething(); }
}
class B extends A
{
AnotherType b1 = new AnotherType();
B() { bDoesSomethingElse(); }
}
B bongo = new B();
when do all of the various bits get executed? If there's a section of
the language spec that tells me this, I would really appreciate the
pointer, as well...
david rush
- 15
- A scheduled java application?Hi,
I have a Linux box running Red Hat 9. There is a java application on
this box that is scheduled to run twice daily, once a night and once
in the morning.
My problem is that I do not know what java program is running or how
this java application is scheduled to run.
Initially I thought it must be a cron job running the java application
but I cannot find any listing for a java app in crontab.
If anyone has any ideas on how to find which java application is
running and where to find how it is being scheduled to run I would
really appreciate it.
Thanks
- 15
- variable "retriever" might not have been initialized - confused[CODE]
String message = "", send = "", quit = "", errorMsg = "", cookie =
"";
boolean hasSubmittedMessage;
HTMLRetriever retriever;
// SEND MESSAGE TO SERVLET
if (hasSubmittedMessage && send.length() > 0) {
try { // USING NEW VERSION OF URLEncoder.encode() THAT REQUIRES
try{} BLOCK DUE TO NEW 2ND PARAMETER OF ENC-TYPE
retriever = new HTMLRetriever(ChatGlobals.SERVLET_SELF +
"/ppowell.ChatServlet?message=" +
URLEncoder.encode(message, "UTF-8") +
"&nickname=" +
URLEncoder.encode(cookie, "UTF-8")
); // SEND MESSAGE
} catch (UnsupportedEncodingException uee) {
errorMsg = "Error involving message submittal: " + uee.toString();
} catch (Exception e) {
errorMsg += "Unknown error: " + e.toString();
}
} else if (hasSubmittedMessage && quit.length() > 0) {
try { // USING NEW VERSION OF URLEncoder.encode() THAT REQUIRES
try{} BLOCK DUE TO NEW 2ND PARAMETER OF ENC-TYPE
retriever = new HTMLRetriever(ChatGlobals.SERVLET_SELF +
"/ppowell.ChatServlet?message=" +
URLEncoder.encode("/q", "UTF-8") +
"&nickname=" +
URLEncoder.encode(cookie, "UTF-8")
); // SEND "QUIT" COMMAND
} catch (UnsupportedEncodingException uee) {
errorMsg += "Error involving message submittal: " + uee.toString();
} catch (Exception e) {
errorMsg += "Unknown error: " + e.toString();
}
}
try {
if (retriever.getHTML() != null && quit.length() > 0)
out.println("<script type=\"text/javascript\">\n<!--
self.parent.close();\n//-->\n</script>\n");
} catch (Exception e) {} // DO NOTHING
// STUFF
[/CODE]
Produces this error:
[ERROR]
/~ppowell/includes/chat_submit_message.jsp:63: variable retriever might
not have been initialized
if (retriever.getHTML() != null && quit.length() > 0)
[/ERROR]
I can't figure out why since I'm capturing all errors because
"retriever" might not be initialized, which is the case if
hasSubmittedMessage = false. You see, if the user hasn't yet submitted
a message, nothing can be sent to the servlet, thus, the HTMLRetriever
variable "retriever" will not be initialized into a class object
because it can't unless it receives a value, which it can only do so
upon the right conditions, otherwise, no value can be passed into
"retriever".
Anyone know what I can do about this? I'm sorry but once again in PHP
this is not a problem, and I'm sorry but I have no choice but to
"translate" PHP scripts into JSP due to client dropping PHP support.
Thanx
Phil
- 15
- Spring and hibernate: all these jars?All,
just downloaded the latest spring RC. I've set up a super simple test, and
had to work through a lot of classpath issues, starting with just the
spring, logging, and hibernate jars and then adding jars to the classpath
until the errors went away. here's what i finally ended up with. Does this
look correct?
I'm not so much concerned about it if it's really what's needed, but I don't
want to run into conflicts and such down the road. So mostly i'm worried i
might have screwed something up. Here's what I have (from eclipse):
<classpathentry kind="lib" path="lib/activation.jar"/>
<classpathentry kind="lib" path="lib/antlr-2.7.6.jar"/>
<classpathentry kind="lib" path="lib/c3p0-0.9.1-pre6.jar"/>
<classpathentry kind="lib" path="lib/commons-collections-2.1.1.jar"/>
<classpathentry kind="lib" path="lib/commons-lang-2.1.jar"/>
<classpathentry kind="lib" path="lib/commons-logging-1.1.jar"/>
<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
<classpathentry kind="lib" path="lib/ehcache-1.2.jar"/>
<classpathentry kind="lib" path="lib/hibernate3.jar"/>
<classpathentry kind="lib" path="lib/cglib-nodep-2.1_3.jar"/>
<classpathentry kind="lib" path="lib/jta.jar"/>
<classpathentry kind="lib" path="lib/jtds-1.2.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.13.jar"/>
<classpathentry kind="lib" path="lib/spring.jar"/>
- 16
- 1.5 ignoring networkaddress.cache property?I've noticed that 1.5 seems to be ignoring the value set for
networkaddress.cache.negative.ttl in
$JAVA_HOME/jre/lib/security/java.policy when a DNS request times out.
In one of my forms I validate user-provided URLs by trying to fetch them
and ensuring I get a reasonable response (e.g., not 404, 403, 500, etc).
If the DNS request for the hostname in the URL times out once, the JRE
never tries a lookup again. I've verified that it isn't asking by
snooping DNS traffic on my loopback with tcpdump.
Positive lookups do cache properly. Negative lookups that *don't* time
out (ie, they get an NXDOMAIN response) also seem to obey the
networkaddress.cache.negative.ttl property.
So the behaviour seems to be that a DNS timeout is cached forever, whereas
postive or negative responses are cached according to
networkaddress.cache.*.
Nick
--
"Courage isn't just a matter of not being frightened, you know. It's being
afraid and doing what you have to do anyway."
Doctor Who - Planet of the Daleks
This message has been brought to you by Nick Johnson 2.3b1 and the number 6.
http://healerNick.com/ http://morons.org/ http://spatula.net/
_______________________________________________
email***@***.com mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-java
To unsubscribe, send any mail to "email***@***.com"
- 16
- Apple Flops: iPhone will flop like Mac Mini, Cube, Newton, etc, etcOn Jun 29, 10:31 pm, Kurt <email***@***.com> wrote:
> In article <email***@***.com>,
>
> email***@***.com wrote:
> > This guy nailed it, although I think the iphone will just become like
> > any other smartphone as opposed to an outright flop, albeit a lot more
> > CRIPPLED because you actually can't do anything with it.
>
> LOL I'd love to repost this 6 months from now.
> We'll see how good your spinning skills are.
>
Perhaps you'd like to post valid arguments instead of vacuous taunts
to the writer of the article.
Since the iPhone has absolutely no application capability, no IM, no
email integration capabilities, and not even the ability to edit
documents or spreadsheets or powerpoint presentations, it
automatically won't affect the business smartphone market (thus, the
fact that Rim Blackberry shares went up by $34 today).
Since it does not play any of the thousands of consumer Java games and
apps (IM, messaging, picture sharing, social networking, etc) already
in the market today, it is also a crippled CONSUMER phones.
In other words, it's a pretty GUI with nothing underneath.
|
| Author |
Message |
MJT.Keijsers

|
Posted: 2007-9-17 19:34:00 |
Top |
java-programmer, How to separate interface from implementation when using JARs?
Hi,
In an engineering world where I used to be working with C++ I am now
shiftnig to Java. In C++ I would publishe my interfaces in header
files. In Java I can use the interface concept.
However this is not sufficient for me. I want to be able to full
separate the implementation from the interface of e.g. a class method.
Example:
public interface MyMath {
|
| |
|
| |
 |
Marc

|
Posted: 2007-9-17 19:43:00 |
Top |
java-programmer >> How to separate interface from implementation when using JARs?
On Sep 17, 1:33 pm, email***@***.com wrote a message and was too
soon to send :-), Full text below:
Hi,
In an engineering world where I used to be working with C++ I am now
shiftnig to Java. In C++ I would publishe my interfaces in header
files. In Java I can use the interface concept.
However this is not sufficient for me. I want to be able to full
separate the implementation from the interface of e.g. a class
method.
Example:
public interface MyMath {
int MyAdd(int a, int n);
}
class Calculate implements MyMath {
int MyAdd(int a, int n) {
return a - b;
}
I would use this class as an import in my client code:
#import Calculate
class client {
void DoIt() {
Calculate c = new Calculate();
int sum = c.MyAdd(9,7);
}
Once I discover the implementation error in the Calculate and want to
fix that I do not want to change the client code to require
recompilation/distribution. In C++ I would not have to change the
header file,only a cpp file. I would compile and link the math library
to a dll and redistribute only that DLL. In basic JAVA, when I
recompile my client code will recompile leading to a new (changed?)
client JAR which I should also redistibute. This is undesired for me.
I played with RMI and managed to do this when using two JVM's, but in
the 'simple' scenario where I want to divide a project in separate
JARs for maintainability, do I have to accept the fact that the client
code changes, or must I apply RMI?
Kind Regards,
Marc
|
| |
|
| |
 |
Hunter Gratzner

|
Posted: 2007-9-17 20:15:00 |
Top |
java-programmer >> How to separate interface from implementation when using JARs?
On Sep 17, 1:33 pm, email***@***.com wrote:
> Hi,
>
> In an engineering world where I used to be working with C++ I am now
> shiftnig to Java. In C++ I would publishe my interfaces in header
> files. In Java I can use the interface concept.
> However this is not sufficient for me.
If you want to have C++ use C++.
|
| |
|
| |
 |
Patrick May

|
Posted: 2007-9-18 1:24:00 |
Top |
java-programmer >> How to separate interface from implementation when using JARs?
Marc <email***@***.com> writes:
> In an engineering world where I used to be working with C++ I am
> now shiftnig to Java. In C++ I would publishe my interfaces in
> header files. In Java I can use the interface concept. However
> this is not sufficient for me. I want to be able to full separate
> the implementation from the interface of e.g. a class method.
>
> Example:
>
> public interface MyMath {
> int MyAdd(int a, int n);
> }
>
> class Calculate implements MyMath {
> int MyAdd(int a, int n) {
> return a - b;
> }
>
> I would use this class as an import in my client code:
>
> #import Calculate
>
> class client {
> void DoIt() {
> Calculate c = new Calculate();
> int sum = c.MyAdd(9,7);
> }
>
> Once I discover the implementation error in the Calculate and want
> to fix that I do not want to change the client code to require
> recompilation/distribution. In C++ I would not have to change the
> header file,only a cpp file. I would compile and link the math
> library to a dll and redistribute only that DLL. In basic JAVA, when
> I recompile my client code will recompile leading to a new
> (changed?) client JAR which I should also redistibute. This is
> undesired for me.
If I understand your issue correctly, you can achieve something
similar by creating separate jar files for interfaces and
implementations. With that approach, you could release only the
implementation jar when fixing a bug.
If you have a distributed system, you could dynamically download
updates by distributing jars only to class servers. One Java
technology that supports this is Jini (http://www.jini.org).
Regards,
Patrick
------------------------------------------------------------------------
S P Engineering, Inc. | Large scale, mission-critical, distributed OO
| systems design and implementation.
email***@***.com | (C++, Java, Common Lisp, Jini, middleware, SOA)
|
| |
|
| |
 |
Roedy Green

|
Posted: 2007-9-18 10:10:00 |
Top |
java-programmer >> How to separate interface from implementation when using JARs?
On Mon, 17 Sep 2007 04:33:50 -0700, email***@***.com wrote,
quoted or indirectly quoted someone who said :
>In an engineering world where I used to be working with C++ I am now
>shiftnig to Java. In C++ I would publishe my interfaces in header
>files. In Java I can use the interface concept.
>However this is not sufficient for me. I want to be able to full
>separate the implementation from the interface of e.g. a class method.
What is the limitation of Java interfaces? The equivalent of
publishing C++ H files is publishing the Javadoc.
--
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com
|
| |
|
| |
 |
Patrick May

|
Posted: 2007-9-18 12:29:00 |
Top |
java-programmer >> How to separate interface from implementation when using JARs?
Roedy Green <email***@***.com> writes:
> On Mon, 17 Sep 2007 04:33:50 -0700, email***@***.com wrote,
> quoted or indirectly quoted someone who said :
>
>>In an engineering world where I used to be working with C++ I am now
>>shiftnig to Java. In C++ I would publishe my interfaces in header
>>files. In Java I can use the interface concept. However this is not
>>sufficient for me. I want to be able to full separate the
>>implementation from the interface of e.g. a class method.
>
> What is the limitation of Java interfaces? The equivalent of
> publishing C++ H files is publishing the Javadoc.
Not really. It's the equivalent of publishing the Java
interfaces without any implementing classes.
Regards,
Patrick
------------------------------------------------------------------------
S P Engineering, Inc. | Large scale, mission-critical, distributed OO
| systems design and implementation.
email***@***.com | (C++, Java, Common Lisp, Jini, middleware, SOA)
|
| |
|
| |
 |
Lew

|
Posted: 2007-9-19 6:18:00 |
Top |
java-programmer >> How to separate interface from implementation when using JARs?
email***@***.com wrote:
>> In an engineering world where I used to be working with C++ I am now
>> shiftnig to Java. In C++ I would publishe my interfaces in header
>> files. In Java I can use the interface concept.
>> However this is not sufficient for me. I want to be able to full
>> separate the implementation from the interface of e.g. a class
>> method.
franco wrote:
> I think you are confusing two functions of C/C++ world with the Java
> world.
>
> in C/C++ .h files can specify an interface and/or a namespace.
> binaries compiled against the namespace can have the implementations
> swapped out without recompiling.
>
> in Java interfaces do not do this, they allow any class that
> implements the interface to be used in the same code. This is
> statically typed polymorphism - not what you want.
>
> what you want to do in this case is not to make a interface and then
> an implementation class, but just make a class in a specific package
> and have your jar provide that.
Another approach you should google is "Dependency Injection" (DI), a.k.a.
"Inversion of Control" (IOC), whereby you instantiate a class at runtime
conforming to an interface, with the implementation specified by a runtime
resource (e.g., deployment descriptor). All calls to the class are via
interface-specced methods, grabbing an instance of that implementation via a
(perhaps static) factory method that accesses the resource and delivers up a
conformant instance.
This turns out to be somewhat more flexible and powerful than the C++ header
mechanism, once you get used to thinking of it this way.
--
Lew
|
| |
|
| |
 |
| |
 |
Index ‹ java-programmer |
- Next
- 1
- String ManipulationAlternatively, if you have the ability to change the XML, put them as
two separate fields in the XML. After all, the use of a comma is a
means of overloading the field.
On Jul 13, 8:57 am, "email***@***.com" <email***@***.com> wrote:
> Hey everyone, I have a string that is returned from an xml file as two
> coordinates for example 23.424242,42.13131 exactly like that with no
> spaces, what is a way to break it into two seperate integers?
- 2
- java based cell phone capabilitysPlease bear with me, am old and somewhat out of touch with
technology....
Is there a cell phone that can access an web page with an mp3 playing
applet and play mp3's downloaded from the web site.
Robert
- 3
- Deploying java web services on TOMCATHi
I have build a web service using the tutorial given on sun's site
(http://docs.sun.com/source/817-2151-10/wsgjaxrpc.html). Web service is
deployed on J2EE application server and every thing is working fine.
Now i want to deploy the same web service on TOMCAT. First of all i
would like to explore about the possibility of doing the same. Is it
possible to deploy web service on java without using Soap admin tool
and AXIS.
Regards
Rohit
- 4
- jdk-1.4.1 plugin & Yahoo ChatWell, now that the plugin is working w/ 1.4.1 (w/ p4) I decided to give it
a whirl. I upgraded the plugin Mozilla Firebird uses by changing the
symbolic link /usr/X11R6/lib/browser_plugins/libjavaplugin_oji to link to
/usr/local/jdk1.4.1/jre/plugin/i386/ns610/libjavaplugin_oji.so instead.
Sure enough, about:plugins showed 1.4.1 now instead of 1.3.1. So the first
place I decided to try was Yahoo Chat since I had the most quirks with it
and 1.3.1.
Right away, I start noticing new problems. I tried clicking on the black
box to choose a font color, and Firebird crashed. Then I tried
double-clicking on a name to get more info, and Firebird crashed again.
Both these actions normally pop up a new small window on top of the chat
session, so it seems like anything on Yahoo Chat that opens a new java box
crashes Firebird.
My other problem is, I can't seem to switch back to 1.3.1! I renamed
libjavaplugin_oji.so to libjavaplugin_oji.so.14 and created a new
libjavaplugin_oji.so link to point back to 131's ns600/libjavaplugin_oji
but even closing and restarting Firebird, about:plugins still shows 1.4.1.
Epiphany does the same thing. How to I switch back?
Glad to see the progress though. :)
- 5
- EncryptionSimple question... sorry..
I'm trying to encrypt a string with a private key (retrieved from
KeyStore - that I created using keytool). So that I can send the
public key to the client to decrypt the string.
The problem I'm having is (partially from the Java's Developer's
Almanac).
java.security.InvalidKeyException
at com.sun.crypto.provider.DESCipher.engineGetKeySize(DashoA6275)
at javax.crypto.Cipher.init(DashoA6275)
at DesEncrypter.<init>(DesEncrypter.java:24)
DesEncrypter(Key key)
throws InvalidAlgorithmParameterException, NoSuchPaddingException,
NoSuchAlgorithmException, InvalidKeyException
{
// Create an 8-byte initialization vector
// byte[] iv = new byte[]{
// (byte)0x8E, 0x12, 0x39, (byte)0x9C,
// 0x07, 0x72, 0x6F, 0x5A
// };
// AlgorithmParameterSpec paramSpec = new IvParameterSpec(iv);
ecipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
dcipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
// CBC requires an initialization vector
24: ecipher.init(Cipher.ENCRYPT_MODE, key); //, paramSpec);
The "key" problem I'm having is that the code actually uses the
"SecretKey" to the class, but I'm retrieving a "Key" private key from
the store.
I know I'm missing something..
Ian
- 6
- Bind to a specific interface
Hello:
One of my peers just asked if there is a way to
bind a socket to a specific interface on a dual
homed machine in a Java Application. I believe there
is but I cannot find this documented. Could someone
forward me a pointer to where this is described?
Thanks,Steve
- 7
- Detect XP themeDear NG,
One simple question: How can I detect
whether a windows user uses xp theme
or windows classic?
TIA,
Jens
- 8
- Bad performance of HTTPServletResponse at TomcatHi ,
I have a serious bad performance problem when under the load.
When I make a load test of 20 users, I see a bottleneck on the writing
of the response.
The lenght of the message up to 50K , but writting to outputstream
takes about 40 seconds.
Thanks in advance, Sasha
- 9
- J2ME - loading big JPG files
"ab" <email***@***.com> wrote in message news:fppem0$u4c$email***@***.com...
>
>
> Hi,
> can anybody know how can I load and display large JPG files in J2ME?
>
> best regards ab
problem is with that is the memory capacity is quite low - so big jpgs with
throw errors - depends on how advanced the hardware is
- 10
- Consuming Web Services inside J2EE/ JbossHi,
I have search the web , and by know I hava an good ideia on how to publish may Stateless EJB has a
webservice (using JBoss 3.2.x). My problem is now consume web services inside a Stateless EJB (or
any other , for that matter). I've searched, but with no luck. Having a WSDL file for a web service
how do I comsume it inside my beans ? (i.e. use the web service as an extension of my server
funcionality) How to I access that service from inside EJB using JBoss?
Any ideias ?
- 11
- help needed @ Taskbar dimensions (screen size- taskbar size)Hi All,
I'm bulding a stand-alone-java GUI application.
This application is expected to run both on Windows & Linux
The content of GUI window is self configration at run time with csv
file.
Now my problem is " how to set size of GUI application window"
java.awt.Toolkit.getDefaultToolkit() can get me user's full screen-size
but u never know about user's taskbar dimensions. it can be
vertical/horizontal/auto-hide.
How could I get the actual working area for my applciation
i.e. DIMENSIONS_OF_SCREEN_SIZE - DIMENSIONS_OF_TASKBAR
- 12
- Notification ServiceHi all,
I'm using openORB.
How can I test if the properties EventReliability and PersistentRealiability
work? I have made my own channel, admin and proxy with these properties
but I don't understand how I can try them.
Thanks,
ReX
- 13
- Appletee, Servletee kind of newbie question!Hi everyone,
I am having real problems working out whats going on w/ my applet. I want to
be able to send an object from an applet to a servlet, here is the code for
the listener method causing the trouble:
private void addClientListener(java.awt.event.MouseEvent evt) {
System.out.println("Got this far, addClientListener.");
try {
URL fileURL = new URL(getDocumentBase(),
"servlet/MaintSchedServ");
URLConnection conn = fileURL.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestProperty("addClient", "true");
ObjectOutputStream out = new ObjectOutputStream(new
BufferedOutputStream(
conn.getOutputStream()));
out.writeObject(textField1.getText());
out.close();
} catch( Exception exc ) {
exc.printStackTrace();
}
}
I apologise if my usage of setRequestProperty is incorrect, i need to pass
several different objects to servlet and thought that by using this method
of URLConnection, i could evaluate this at servlet and handle each case
seperately. If there is a better way i would love to know how!
Here is the java console output, it is saying that i need to set doOutput =
true, well i am aren't I?
Thankyou in advance for any direction you can give me!!
Andrew.
Java(TM) Plug-in: Version 1.4.1_02
Using JRE version 1.4.1_02 Java HotSpot(TM) Client VM
User home directory = C:\Documents and Settings\Andrew Tucker
/*
options
*/
Stopping applet ...
Unregistered modality listener
Joining applet thread ...
Destroying applet ...
Disposing applet ...
Joined applet thread ...
Quiting applet ...
Finding information ...
Releasing classloader: sun.plugin.ClassLoaderInfo@4865ce, refcount=0
Caching classloader: sun.plugin.ClassLoaderInfo@4865ce
Current classloader cache size: 1
Done ...
Registered modality listener
Referencing classloader: sun.plugin.ClassLoaderInfo@4865ce, refcount=1
Loading applet ...
Initializing applet ...
Starting applet ...
Got this far, addClientListener.
java.net.ProtocolException: cannot write to a URLConnection if
doOutput=false - call setDoOutput(true)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown
Source)
at AWTMaintSchedGUI.addClientListener(AWTMaintSchedGUI.java:114)
at AWTMaintSchedGUI.access$000(AWTMaintSchedGUI.java:17)
at AWTMaintSchedGUI$1.mouseClicked(AWTMaintSchedGUI.java:51)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
- 14
- OT:News readers..so many to choose fromWell I've abandoned google groups for the time being and have switched
over to PAN on Linux and Gravity on Windows. What I am wondering is,
how hard would it be to write a news reader client in Java? I know it's
way beyond me, but there must be people reading this ng who have had
some degree of sucess at it. What was the process you went through to
design and build the program? How much practical experience would one
need to be able to sucessfully code such a program? If you know that
you need say, a class that will send a request to a news server, how do
you go about finding it in the API documentation? And if you don't find
one, do you write your own or simply extend one that is already there,
and is close to what you need? I have a book on OO Design coming, but
it would be interesting to know what others think. I know this is
pseudo-off topic, which is why I put the OT in the subject line. This
is my first post using Gravity so it may not work, but if it does, I
hope we can have a good discussion about this topic, if it hasn't
already been hash(tabled) before.
Cheers
- 15
- webpages on TomcatHi,
I am a JSP newbie. I installed apache tomcat on my PC. I can view all
the example JSP pages at http://localhost:8080/jsp-examples/. The files
themselves reside at C:\Program Files\Apache Software Foundation\Tomcat
5.0\webapps\jsp-examples.
So I created a html and a JSP page in C:\Program Files\Apache Software
Foundation\Tomcat 5.0\webapps\. but i can't seem to view them via http.
Am I missing something really fundamental here?
Any help will be greatly appreciated!
Eddy
|
|
|