Object comparision with equals()

hi all ..
i have stuck in a problem I'm testing a small system where there are 4 classes mainly an abstract parent class and two other sub classes and a client Class ,respectively ,Vehicle, Car , Van and Manager. In my "Manager" class there is a method [setCarier()] that checks whether the object that is passed to the method is a "Car "or "Van" and do something accordingly. code is given bellow
note: there is another method[returnRegNo()] in the Vehicle class that returns the registration number.
1 public void setCarier(Vehicle v) throws NullPointerException
2 {
3 if(v.equals(null))throw new NullPointerException("Reffering to a null value");
4 if(v.equals(new Car(v.returnRegNo())))
5 {  // do something}
6 else{ // do something else}
7 }
problem : is it wrong if i try to compare my unpredicted Vehicle object i.e "v" with the expected object i.e Car using equals() method, as i have done in the 4th line. Because when i try to test this method in junit by giving an instance of Car and using assertEquals() method it reports bellow description
expected:<Availability: AVAILABLE Registration NO xc45ghy Max Weight: 500 Type of the Vehical: Car> but was:<null>
but if i use v instanceof Car the testing works properly. please kindly explain me whats wrong with this equals() method.

Hello Chandima,
I'm not sure what you are trying to accomplish, but checking whether a is of type B is generally discouraged. Maybe you should introduce an enum:
public abstract class Vehicle {
     public enum Type {
          CAR, VAN;
     public abstract Type getType();
     /* further Vehicle code */
public class Car extends Vehicle {
     public Type getType() {
          return Vehicle.Type.CAR;
}As a side note: Line 3 of your code is confusing. When you encounter a NullPointerException, you don't expect it to be thrown explicitly. If you feel you have to compare to null then throw an IllegalArgumentException or use an assert statement:
if(v == null) {
     throw new IllegalArgumentException("v = " + v);
// or
assert v != null : "v = "+ v;EDIT: changed getType() to abstract, makes way more sense.. ;)
With kind regards
Ben
Edited by: BenSchulz on Jan 29, 2008 11:51 AM

Similar Messages

  • FrameMaker 10 - Finding all graphics in a book with a Object Properties Scaling equal to 0%?

    Is there a way in FrameMaker 10 in the book to quickly find all imported graphics (.bmp, .cgm, .jpg, & .wmf) that are out-of-aspect ratio or where the Object Properties Scaling equals 0%?
    I import a lot of graphic (around a 100 or so) in FrameMaker 10 and I would like to be reassured that all imported graphic have the correct aspect ratio, and find any that are wrong quickly.
    I would like to be able to do this search in the Book format rather than each section.
    Is there a way to do this?
    Thanks!

    Denis, this would require scripting. ExtendScript would likely be the first choice and would be perfect for the job. Given that you want to operate on the whole book at once, the script would be a little bit longer, so you might not get someone to post it here for free. I would consider it because it would be a nice addition to the samples on my website, but I can't do it right this minute. If no one offers for free, hit me up in a day or two and I might be able to accommodate  you.
    One question though... are you really looking to verify the aspect ratio? This could be a considerably more complicated task. FrameMaker doesn't save the original ratio, so you would need to reimport the graphic into some other scratchpad area, calculate the aspect ratio, then compare it to the place of reference. I'm not sure that I could go that far.
    Alex, I think you may have misunderstood the question. Also, it's not even clear if these are structured files, and if so, if there is a structured application to save as XML.
    Russ

  • Problem with Equals/Contains

    Hello,
    I am learning .net c# and i wanted to rewrite Stack collection.
    But when i tried rewriting Contains method, i think i found little bug.
    I cant compare two instances of class.
    I created class Test and i put it into stack, then i made new instance of class Test and i tried do Contains, how i found out it always returns False. Same is with Equals, ReferenceEquals and ==. Why is this happening? Both classes contains same items with
    same things. Why it isnt True?
    Thanks for answer.

    Comparison and equality are one of the things that are done in an strange way in .NET.
    First thing to pay attention is that, there is difference between equality comparison and less than/greater than comparison. On the whole, equality is used in searching and looking up while comparison is used in sorting. Equality comparison is always doable.
    You compare whether two things are equal. But less than/greater than might not necessarily possible in all situations.
    There are also two general ways when comparing two things (whether for equality or less than/greater than):
    Objects themselves perform comparison on each other
    Another object -and external object- performs comparison on them
    In first approach, we call the Equals() method an object, passing it the other object we intend to compare its equality with, and the former object performs equality comparison himself and sees whether it is equal to the given object or not. While Equals()
    method provides us a good point to override comparison, the limitation is that, we can override Equals() only once in a class, while there might be different equality contexts available for comparison.
    For example in a collection of Person objects, one time we might compare equality based on Lastname and another time we might want to do it based on Birthdate. Using Equals() method regretfully gives us an only chance for comparison. Also, it corrupts the
    equality rule of all of our objects. Apparently we don't want to change the equality algorithm of our objects, one of which is equality comparison based on reference that is done intrinsically by object base class. Also, what if we don't access to the source
    code of the class we are using its instances in our application?! Let's not think about such a frightening situation (in that case, inheritance is an ultimate shot, however, not the only shot, as we will see soon). This leads us to the other approach.
    In the second approach we use another object as a judge that performs comparison (whether it be equality or less than/greater than) and proclaims the result. Because the judge object is external and can be any object, we will potentially have numerous
    choices at hand to use for comparison. One time we might use a LastNameEqualityComparer object, another time use a BirthdateEqualityComparer and another time use whatever equality comparer we want. We have total freedom.
    Now, we get to the point where I said there is strange or anomaly behavior in .NET collections regarding comparison.
    Some collections such as Dictionary<TKey, TValue> provides us a way to pass them an equality comparer object in their constructors when we are creating an instance of them.
    public Dictionary(IEqualityComparer<TKey> comparer)
    exmaple: https://msdn.microsoft.com/en-us/library/ms132072(v=vs.110).aspx
    public class Example
    public static void Main()
    // Create a new Dictionary of strings, with string keys
    // and a case-insensitive comparer for the current culture.
    Dictionary<string, string> openWith =
    new Dictionary<string, string>(
    StringComparer.CurrentCultureIgnoreCase);
    // Add some elements to the dictionary.
    openWith.Add("txt", "notepad.exe");
    openWith.Add("bmp", "paint.exe");
    openWith.Add("DIB", "paint.exe");
    openWith.Add("rtf", "wordpad.exe");
    // Try to add a fifth element with a key that is the same
    // except for case; this would be allowed with the default
    // comparer.
    try
    openWith.Add("BMP", "paint.exe");
    catch (ArgumentException)
    Console.WriteLine("\nBMP is already in the dictionary.");
    // List the contents of the sorted dictionary.
    Console.WriteLine();
    foreach( KeyValuePair<string, string> kvp in openWith )
    Console.WriteLine("Key = {0}, Value = {1}", kvp.Key,
    kvp.Value);
    But some collections don't provides us a way in their constructors to pass them a custom comparer. Unfortunately your case, Stack, is among them and Stack doesn't have such a constructor.
    If we read the MSDN documentation of the Contains() method in the non-generic Stack, and generic Stack<T> classes, we get the following sayings that reveals everything:
    non-generic Stack.Contains(): this method determines equality by calling Object.Equals.
    generic Stack<T>.Contains(): this method determines equality using the default equality comparer EqualityComparer<T>.Default for T, the type of values in the list.
    If we use a non-generic Stack class, our only choice is overriding Equals() in the class of our object, as Andy ONeill mentioned before. But if we use non-generic Stack<T>, .NET team generously favored us one other tiny choice. We can implement the
    IEquatable<T> interface in our class that has an Equals() method and implement the algorithm of our new equality comparison in this Equals() method. Why we should do that? Because that is what EqualityComparer<T>.Default does! See MSDN documentation
    again:
    https://msdn.microsoft.com/en-us/library/ms224763(v=vs.110).aspx
    The Default property
    checks whether type T implements
    the System.IEquatable<T> interface
    and, if so, returns an EqualityComparer<T> that
    uses that implementation. Otherwise, it returns an EqualityComparer<T> that
    uses the overrides of Object.Equals and Object.GetHashCode provided
    by T.
    Although this explanation is a little misleading or vague, simply put it says, the Default property returns a comparer object that checks whether the objects being compared have implemented IEquatable<T> interface or not. If so, it uses the implemented
    Equals() of that interface in the objects, otherwise it resorts to the intrinsic Equals() method that is inherited to all objects from the object, father of all, base type.
    This IEqualityComparer<T>.Default object and that IEquatable<T> interface together help not to corrupt the innate Equals() methods of our classes.
    However, as good as what .NET team might have thought by favoring us using an IEqualityComparer<T>.Default in the Contains() method of the non-generic Stack<T> class, their solution is far from what is expected. Because again it stucks us to
    the first problem. We have only one and only one chance to define an equality comparison algorithm in our class. Naturally we can't implement an IEquatable<T> interface multiple times in our class.
    The tiny problem is that, they missed adding a new constructor in Stack<T> class that accepts an IEqualityComparer<T> like what they have done in Dictionary<TKey, TValue>. This is a shame. Because this is not a rare occasion. The same is
    true for some other collections such as Queue<T>, HashSet<T>, LinkedList<T> and List<T>. I don't know whether they have did this intentionally or they simply forgot to do that.
    So what? What should we do if we had multiple equality testing algorithms.
    Fortunatey there is still hope.
    If .NET team working on generic collections were that lazy to forget adding new constructors to generic classes, they did a good job and solved the problem from the root by adding a bunch of extension methods to all IEnumerable, IEnumerable<T> collections
    in System.Linq namspace and freed themselves forever. Look at the following extension methods in System.Linq namespace:
    public static bool Contains<TSource>(
    this IEnumerable<TSource> source,
    TSource value,
    IEqualityComparer<TSource> comparer
    You got the idea? They defined a general Contains() method for any IEnumerable<T> collection that allows us to give it a custom equality comparer object. Hooray! Problem solved. But wait. Why should we be happy? That comparer parameter might still
    use IEquatable<T> and presumes the objects have an Equals() method! Oh my gush! Still returned to the same point and the problem exists. We stuck forever! Don't freak out. Be calm.
    The IEqualityComparer<T> interface is defined this way:
    public interface IEqualityComparer<in T>
    bool Equals(T x, T y);
    int GetHashCode(T obj);
    It says, an equality comparer should have an Equals() method and it is in this very method that the equality comparison algorithm will go. This method receives two objects and compares them together using whatever algorithm the creator of the equality comparer
    class has intended.
    The good point of this IEqualityComparer<T> and that Contains<T>() extension method is that, your objects are not expected to implement an IEquatable<T> as well. This is another good news. Because we are neither forced to override
    Equals() in our class and corrupt it, nor we have to implement IEquatable<T> in them. In fact, our classes remain clean and intact and we even don't have to have their source code.
    So, this was the final cure for the malignant issue of equality comparison. The same story is true for less than/greater than comparison.
    In conclusion, what I recommend is that, never override the intrinsic Equals() method, inherited from Object, in your classes. Instead use the extension methods that has a comparer parameter in their signature and receive a comparer object (like Contains<T>()).
    I don't want to again raise a depression air here. But you should know that. You have the right. All extension methods does not have an overload that has a comparer parameter. But don't worry. You can yourself write the required extension method you need and
    complete the probably incomplete work in .NET.
    Good luck

  • How to keep an application level object running with SunIDM?

    We are working on intergrate a gmail project with SunIDM. We need an application level object running with SunIDM so it will maintain a token generated from Gmail side. In anther servlet project, I had this object saved in the attribute of the ServletContext, then other session level servlet could share this attribute anytime. Is there a way to store attribute in Servlet Context and have it shared by different user session in SunIDM? I have been reading documents and searched this forum, haven't find any topics related how to maintain an application level object live. Hopefully that I can get some hint here.
    Thank you so much.

    Paul, Thank you so much for the further explaination. I don't think it will work since the token generated from gmail will expire every 24 hours.
    We are using the gdata library published from by gmail people, and I create a new UserService object and have it run in the application level. The UserService object will generate a token and renew it every 24 hours behind the scene. Here is how I implement it in my Servlet project:
    //to have a UserService object running at the application level:
    public class GmailUserService extends HttpServlet {
    public void init(ServletConfig config) throws ServletException{
    super.init();
    userService = new UserService(myApplication);
    config.getServletContext().setAttribute("gmailUserService", userService);
    //to access this UserService object from other servlet in each user session:
    UserService userService = (UserService)servletContext.getAttribute("gmailUserService");
    Gmail will trigger an error if we create a new UserService object for each user. They recommend to have all the user to share one UserService object. I am looking for similar approach in SunIDM.
    Thank you again, Paul, for trying to help.

  • Is there any downside mixing Objective-C with C++ for iOS apps?

    I'd like to use C++ since it's fast and more dynamically in memory reference.
    Is there any downside mixing Objective-C with C++ for iOS apps?
    When googled for info, I only found tutorials about how to let xcode compile Objective-C with C++.
    Thanks for help.

    hokanst wrote:
    Both Objective-C and C++ are (more or less) extensions of C.
    C supports manipulation of pointers and casting of pointers, this implies that both Objective-C and C++ will be able to manipulate C data like arrays, structs ...
    Objective-C has classes like NSData to read/write blocks of bytes from/to file and to access ranges of bytes when the data is loaded into memory.
    C++ probably has similar classes (I'm not well versed in C++ so I don't know).
    If you want to look into using C++ you will probably want to look at Objective-C++, the link below has links to docs on how to use C++ with Objective-C:
    http://stackoverflow.com/questions/3684112/what-is-objective-c
    Thanks for the info, NSData does what I need.
    A replied in the link also mentioned that he's using C++ in his application too. As long as I'm aware of memory management (prevent memory leaks, etc) as @disguise said, it should be fine.
    @etresoft indeed, but C is the base language of ObjC, there are ways to deal with.

  • How do you print with StdOut.println once at a time with equal probability!

    Hello everyone!
    I tried finding this in the FAQ, but nothing really came close to my unique situation. I am trying to write a method before the main method to report to the user that their guess is too high, in a game where the computer picks a number from 0 to 1000.
    I have four different statements to let the user know that the guess is too high, here is the code:
    public static void reportTooHigh() {
    StdOut.println("Wow come on.. too high!");
    StdOut.println("Too high buster.");
    StdOut.println("Too high, LOL.");
    StdOut.println("WOOWWAAAWEEWAAHH.. too high!");     When I use this method in my main method by typing ProgramName.reportTooHigh(), it prints out all of the statements. Any suggestions on how to get them to print out one at a time with equal probability?
    Thanks!
    Edited by: OvechkinRulez on Apr 27, 2008 4:06 PM
    Edited by: OvechkinRulez on Apr 27, 2008 4:06 PM
    Edited by: OvechkinRulez on Apr 27, 2008 4:07 PM

    OvechkinRulez wrote:
    Flounder, I tried using an if statement but for some reason it didn't work for me. It still printed out all of the statements. Can you give me a head start, I am sure I can figure out the rest. Do you pick a value from 0 to 1, and then if its below .25 you print out one thing, below .5 but above .25 you print out the other, etc.?If you use the Random class you can get a number from 0 inclusive to 4 exclusive (ie 0,1,2 or 3). If 0 print the first message, if 1 print the second message, etc. Or as pointed out already use the switch statement.

  • Can't open a object view with mapinfo

    i have created this object view (with toad 7.6 in a server oracle 9i ITA, i use mapinfo 7.5 ITA):
    CREATE OR REPLACE FORCE VIEW PRG.VISTAMORD
    (PIANO_STORIA_ID, ANAGR_ID, PIANO_ID, TIPOMOD_COD, ZTO,
    PRG, PIANO_STATO, ATTO_DATA, ATTO_TIPO, ATTO_NUM,
    PIANO_VARIANTE, PIANO_NOME, PIANO_NOTE, PIANO_POS_ARCH, PIANO_LEGGE,
    ANAGR_COD_COM, MI_STYLE, MI_PRINX, GEOLOC, ST)
    AS
    SELECT a.Piano_storia_id, a.Anagr_id, a.Piano_id, a.tipomod_cod,
    a.ZTO, a.PRG, b.piano_stato, b.atto_data, b.atto_tipo, b.atto_num,
         b.piano_variante, b.piano_nome, b.piano_note,
         b.piano_pos_arch, b.piano_legge, c.anagr_cod_com,
         d.mi_style, d.mi_prinx, d.geoloc, d.st
    from (piano b inner join ((oggetti_storia a
    inner join aux_indice e on (a.piano_storia_id=e.piano_storia_id)
              and (a.anagr_id=e.anagr_id) and
    (a.piano_id=e.piano_id)) inner join anagrafica c on a.anagr_id = c.anagr_id)
         on b.piano_id = a.piano_storia_id) inner join oggetti_spazial d
              on a.anagr_id = d.anagr_id
    where ((a.tipomod_cod)<>'DEL')
    order by piano_storia_id;
    where oggetti_spazial is a object table (a mapinfo map imported in Oracle)
    if i don't add the order by clause the view is ok and i can open it in mapinfo,
    with the order by clause, when i try to open the view mapinfo give the error:
    "errore Oracle: ORA-00600: codice errore INT., argom.:[15819],[5582],[],[],[],[],[],[]. Impossibile recuperare i record nella tavola.
    can You Help me?

    Hi Gabriel,
    I think with enough patience one could get the ASCII DataPlugin Wizard to create a DataPlugin that would work for your file, but the resulting code generated by the wizard is not easily understandable, and it would not have correctly devined the sampling rate from your file format.  I've written a DataPlugin from scratch which correctly reads the data snippet you sent over.  I included an implicit time channel so that you could easily see the time values inferred from the "SampleRate" line.  The implicit time channel rerquires all the lines in the ASCII file to be parsed in order to figure out the correct channel length (line 58), so if you have large data files you should comment out the time channel lines (44, 45, 58) and use just the implict time information already encoded in the data channel waveform properties (for faster file indexing).  Unless your files are verry large, though, I think you'll like the DataPlugin as it is.
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments
    Attachments:
    Fischerg_TXT.zip ‏2 KB

  • Object-group with network-object containing an IP address range

    Hello,
    Does the ASA treat an object-group with a network-object containing a range of IP addresses as a netmask? For example, I can apply this configuration without the ASA throwing any errors though the configuration calls for a 'net mask':
    object-group network test
    network-object 192.168.0.0 192.168.63.255
    network-object-group mode commands/options:
      A.B.C.D  Enter an IPv4 network mask
    sh run ob id test
    object-group network test
    network-object 192.168.0.0 192.168.63.255
    I found that in the documentation it requires a netmask as oppose to a range. Is this a bug in the code? I am running code version 8.0(5)23 on a 5520. If this is not a bug how does the ASA treat this type of configuration when applied to an access list? When I ran a quick packet trace and denied access from that range it looks like the ASA doesn't read that configuration properly. Thank you.
    -John

    Hello,
    Thank you for your replies. In code version 8.0(5)23, it appears I am able to define a "range" of IP addresses as in:
    192.168.0.0 192.168.63.255 as opposed to defining a range with a netmask like 192.168.0.0 255.255.192.0.
    With the "range" of IP address applied to the "object-group network test" with sub command "network-object 192.168.0.0 192.168.63.255" the ASA does not pick up on said "range" when this object group is applied to a DENY access list. It only reads it properly when the netmask is attached, which is the correct configuration, as in: "network-object 192.168.0.0 255.255.192.0".
    To clarify, I mean range as in 192.168.0.0 - 192.168.63.255.
    Hope this helps to understand. I am just curious as to why this is even able to be applied in such a way or if it is a bug in this particular code version? I can also confirm that this can be done in code version 8.4(2). See below snippets of my configuration in the 8.4(2) code version:
    access-list 101 line 3 extended deny ip object-group testmask any 0x577f55a8
      access-list 101 line 3 extended deny ip 192.168.0.0 192.168.63.255 any (hitcnt=0) 0x0623b0c4
    access-list 101 line 4 extended permit tcp any any eq 89 (hitcnt=1) 0x36f1e5cd
    Packet trace results in allowing the "range" of IP address:
    Result:
    input-interface: outside
    input-status: up
    input-line-status: up
    output-interface: dmztest
    output-status: up
    output-line-status: up
    Action: allow
    Now with the "correct" configuration:
    access-list 101 line 3 extended deny ip object-group testmask any 0x577f55a8
      access-list 101 line 3 extended deny ip 192.168.0.0 255.255.192.0 any (hitcnt=1) 0xa31c6bbd
    access-list 101 line 4 extended permit tcp any any eq 89 (hitcnt=1) 0x36f1e5cd
    Result:
    input-interface: outside
    input-status: up
    input-line-status: up
    output-interface: dmztest
    output-status: up
    output-line-status: up
    Action: drop
    Drop-reason: (acl-drop) Flow is denied by configured rule
    Thank you.
    -John

  • BizTalk 2006 Event Log Warnings - Cannot insert duplicate key row in object 'dta_MessageFieldValues' with unique index 'IX_MessageFieldValues'.

    We have been seeing the following 'warnings' in the event log of our BizTalk machine since upgrading to BTS 2006. They seem to occur randomly 6 or 8 times per day.
    Does anyone know what this means and what needs to be done to clear it up? we have only one BizTalk server which is running on only one machine.
    I am new to BizTalk, so I am unable to find how many tracking host instances running for BizTalk server. Also, can you please let me know that we can configure only one instance for one server/machine?
    Source: BAM EventBus Service
    Event: 5
    Warning Details: Execute batch error. Exception information: TDDS failed to batch execution of streams. SQLServer: bizprod, Database: BizTalkDTADb.Cannot insert duplicate key row in object 'dta_MessageFieldValues'
    with unique index 'IX_MessageFieldValues'. The statement has been terminated..

    Other than ensuring that there exists a separate and single tracking host instance, you're getting an error about duplicate keys.. which implies that you're trying to Create a BAM Activity twice with the same data.
    I suggest you have a in-depth examination of the BAM (TPE or API) associated with the orchestration. In TPE ensure that the first binding you select is the "Instance Id" or "Message Id" before going ahead to map the ports or others.
    Regards.

  • Open  Business Objects report with J2SE

    Hi, How can I do to open a Business Objects report with J2SE aplicattion?
    Thanks,

    Depending on the version of Crystal Reports / Business Objects you have, there are Java libraries you can use to connect to the Business Objects Application server. I spent a lot of time on BO's website figuring it out. In the end i only needed a few libraries to connect, and ask the server to print a report. I remember that there was a way to have the server send a pdf as a binary stream, that you could then save as a pdf file and read. You can do a lot more with the SDK, to the extent of creating your own report creation tool. If you would like some specifics, i might be able to find the some of the documentation i used. It all came from the BO website.
    Wish i could be more help
    chip.
    Edited by: Chipper on Mar 3, 2010 3:29 PM

  • Getting text ID and Text object  associated with item texts in PO...

    Hi,
    To print standard text on smartform for a given item in purchase order, I need to find the text ID and object associated with it.
    There are various texts like item text, Info record PO text, Material PO Text, Delievry Text, etc...
    Now when I go to ME22N, and select item detail for any item -> Texts , how do I get text ID, and object associated with it ?

    Hi ,
        Use table stxh,stxl
        FM read_text.
        you can view the text id by following
        this link
         me23->header-text-double click on text->menu goto->
         header        
    Regards
    Amole

  • Read Archive Object direct with Offset

    Dear all
    i need to access an invoice into the Archive. I know the archivename and the offset.
    I open my archive and this works well. Now i have not found a possibility to access directly to the right object with the right offset.
    I use now the FM ARCHIVE_GET_NEXT_OBJECT and check the offset, but this takes a long time on big archives. How can I access the object directly with the offset?
    Herbert

    Hi Jorge,
    If you want to read the data for reporting or
    control purposes, you have to write a report, which reads data from the archive files sequentially.
    Alternatively, you can also use the Archiving Information System (AS). This tool enables you to define an
    InfoStructure, and create reports based on these InfoStructures. The InfoStructures define an index for
    the archive file data. At the moment, the archiving process in the BW system does not fill the
    InfoStructures during the archiving session automatically. This has to be performed manually when
    needed.
    Another way of displaying data from the archive file is by using the ‘Extractor checker’ (TCODE RSA3).
    Enter the name of the export DataSource of the respective data target (name of the data target preceded
    by ‘8’), and choose the archive files that are to be read. The extractor checker reads the selected archive
    files sequentially. Selection conditions can be entered for filtering but have to be entered in in internal
    format (e.g. 20011130 for date 30.11.2001).
    Anup.

  • To load a object created with 3D Studio Max

    Hello,
    I am a new Java user. I have to realize an interactive presentation in Java of a three-dimensional object created with 3D Studio Max. I would like to know how I can load this object in my java project.
    I should, in fact, allow the customer to modify the color of the object and to rotate it.
    Many thanks
    Massimo

    Well, my first reccomendation is to look into Java 3D. I don't know anything about it myself, but it's the obvious place to look.

  • How do i set text in a object so that object expands with text and has even space on both sides of the object in illustrator cc?

    how do i set text in a object so that object expands with text and has even space on both sides of the object in illustrator cc?

    if you see all the different panel. I past the info in and have to manually expand the width of every panel. Is there a way of pasting the text in and the panel moves to the right with so that there is an even space on both sides of the blue panel?

  • Extending view object which does not have any entity object associated with

    Dear all
    I am interested in extended on of the standard pages VO object in JDeveloper OA extension
    the standard page is oracle/apps/pos/supplier/....suppSummaryPG
    and one of the view which I am interested to extend is suppSummVO
    the problem is that when I copy xml files and java files from apps server to
    my local jdevelope folder , I am not able to open that suppSummVO, the changes which
    I find from other VO object and this(suppSummVO) object is that, this VO does not have any
    Entity Object associated with it and the only query is return on this VO , is it the reason that
    I am not able to open it Jdeveloper, but the real issue is that how can I extends this type of VO
    in my OAExtension.
    Regard
    Noman

    Its the same way of extending VO with EO's or without EO's.
    Sometimes if the .class files arn't decompiled we get weird jbo errors. So use cavaj/jad to decompile those Impl.class, RowImpl.class files and keep them in the same folder as vo.xml in myprojects and try extending that VO.
    Thanks,
    Ravi

Maybe you are looking for