Interfaces that extend other interfaces

I am trying to get a handle on the concept of interfaces extending other interfaces, and I just want to bounce my thoughts off the board and see where it goes. The Sun tutorial doesn't provide a lot of detail that I can see.
Suppose we have interface A which has 3 methods (signatures), and interface B which extends interface A and adds two methods of its own. Suppose also we have a class C which can implement A or B or both.
1. Having B extend A provides a heirarchy of types, with A above B
2. If class C implements interface B, then the extends relationship B has with A forces C to provide implementations for the methods of A as well as B. On this point I am not certain.
3. Having B extend A allows us to essentially add methods to the interface defined by A without forcing those changes on owners of the classes that already extend A.
Sound OK? Anywone have anything to add?
Edited by: Fguy on Aug 27, 2009 7:07 PM

jverd wrote:
Fguy wrote:
>
3. Having B extend A allows us to essentially add methods to the interface defined by A without forcing those >>changes on owners of the classes that already extend A.Huh? Not sure what you're saying, here, but extending A means we're defining a type that's a specialized or >enhanced type of A. Implementors can implement A if all they need is a run of the mill A, or B if they need the >specialized/enhanced version.Thanks.
What I meant was that class C implements interface A, and interface B is not a part of the picture yet. Then, by creating a new interface B that extends A, rather than just adding the new methods to A, then you are not forced to add new method implementation to class C right away.That would be one situation in which one might do that. Of course, it's also not uncommon to design the two distinct interfaces from the start
Ok I'll pick up on that, the situation that led to this thread was me trying to understand why the List interface extends the Collection interface, and why the ArrayList class implements both interfaces. And I eventually decided that designing kind of an arrangement makes sense from the start as you say, because there are probably reasons why you'd want that type heirarchy, or higher level abstraction. with different levels of functionality in the respective implementations. I can't really think of any other reason.

Similar Messages

  • ABAP-OO: Another Layer (1 Interface) vs. extending N Interfaces?

    Hello,
    this is a crosspost from Stackoverflow, any advice greatly appreciated.
    I have an Data-Access Layer (SAP ABAP, but the language does not matter here) where I have 1 interface per entity/database-table, like
    IF_DATA_CONTRACT_HEAD->get_contract_header( )
    IF_DATA_OBJECT_CALC->get_object_calculations( )
    40 more ...
    These interfaces are implemented by the actual database-access class-impls and a generated caching-layer, which is pretty simple since the methods really do not have any parameters and just return "the relevant" data.In certain consumers however, I require a filtered access to the returned data, specifically I need to get the data of all interfaces (~50) constrained by contract-position.So, do you recommend to
    A) extend all interfaces by an optional parameter like IF_DATA_CONTRACT_POSITION->get_contract_positions() which means my impl and my caching-layer gets more complex
    B) should I create another interface IF_DATA_FILTER_CONTRACT_POSITION->set_contract_position_filter? for the sole purpose of explicitly filtering data-acesss
    A) When extending every existing interface (the ~40-50 listed above) with the optional contract-position filter/constraint, the API is quite clean and would look like the following:
    result = lo_data_object_calc->get_object_calculations( <FILTER> ).
    As already mentioned, it would require me to extend every implementation, the data-access as well as the generated caching-layer.
    B) With the explicit filter-interface IF_DATA_FILTER_CONTRACT_POSITION on the other hand, I would have yet another interface-layer around data-access and I could generate the uncoupled filtering impls. I would neither need to touch the actual data-access impl nor the generated cache-layer. However, the usage would be a little more clumsy, like
    TRY. " down-cast from data-interface to filter-interface
    DATA lo_object_filter ?= lo_data_object_calc.
    lo_object_filter->set_contract_position_filter( <FILTER> ).
    CATCH could_not_cast.
    RAISE i-need-a-filter-impl!
    ENDTRY.
    result = lo_data_object_calc->get_object_calculations( ).

    Update 05.08.2014: I decided to go with
    C) create a seperate filter-object which explicitly filters the tables retrieved by e.g. get_object_calculations( ).
    Reasoning: Separation of Concerns, explicit semantic of filtering, no need to update all interfaces or regenerate caching-layer.

  • Interface extends another interface

    Hi,
    Java has the concept of inheritance for both classes and interfaces.
    For classes inheritance is restricted to single inheritance. For multiple
    inheritance the class should implement an interface.
    But what about interfaces? Is multiple inheritance defined for interfaces?
    If so, is there any documentation on this? Are there OO-design-considerations
    that argue against multiple inheritance for interfaces?
    Thanks for your remark or pointing to literature,
    Sponiza

    You should try it and see. But, not to spoil the surprise, yes Java allows an interface to extend multiple interfaces, and yes, like most everything else there are design considerations to doing this. You might wade through the long discussion here:
    http://forum.java.sun.com/thread.jsp?thread=479908&forum=4&message=2241590
    and hit google or search these fora
    Good Luck
    Lee

  • Abstract class extends other class?

    What happens when a abstract class extends other class?
    How can we use the abstract class late in other class?
    Why do we need an abstract class that extends other class?
    for example:-
    public abstract class ABC extends EFG {
    public class EFG{
    private String name="";
    private int rollno="";
    private void setName(int name)
    this.name=name;
    private String getName()
    return this.name;
    }

    shafiur wrote:
    What happens when a abstract class extends other class?Nothing special. You have defined an abstract class.
    How can we use the abstract class late in other class?Define "Late". What "other class"?
    Why do we need an abstract class that extends other class?Because it can be useful to define one.

  • Can anybody help me to build an interface that can work with this code

    please help me to build an interface that can work with this code
    import java.util.Map;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.BufferedReader;
    import java.io.FileReader;
    public class Translate
    public static void main(String [] args) throws IOException
    if (args.length != 2)
    System.err.println("usage: Translate wordmapfile textfile");
    System.exit(1);
    try
    HashMap words = ReadHashMapFromFile(args[0]);
    System.out.println(ProcessFile(words, args[1]));
    catch (Exception e)
    e.printStackTrace();
    // static helper methods
    * Reads a file into a HashMap. The file should contain lines of the format
    * "key\tvalue\n"
    * @returns a hashmap of the given file
    @SuppressWarnings("unchecked")
    private static HashMap ReadHashMapFromFile(String filename) throws FileNotFoundException, IOException
    BufferedReader in = null;
    HashMap map = null;
    try
    in = new BufferedReader(new FileReader(filename));
    String line;
    map = new HashMap();
    while ((line = in.readLine()) != null)
    String[] fields = line.split("
    t", 2);
    if (fields.length != 2) continue; //just ignore "invalid" lines
    map.put(fields[0], fields[1]);
    finally
    if(in!=null) in.close(); //may throw IOException
    return(map); //returning a reference to local variable is safe in java (unlike C/C++)
    * Process the given file
    * @returns String contains the whole file.
    private static String ProcessFile(Map words, String filename) throws FileNotFoundException, IOException
    BufferedReader in = null;
    StringBuffer out = null;
    try
    in = new BufferedReader(new FileReader(filename));
    out = new StringBuffer();
    String line = null;
    while( (line=in.readLine()) != null )
    out.append(SearchAndReplaceWordsInText(words, line)+"\n");
    finally
    if(in!=null) in.close(); //may throw IOException
    return out.toString();
    * Replaces all occurrences in text of each key in words with it's value.
    * @returns String
    private static String SearchAndReplaceWordsInText(Map words, String text)
    Iterator it = words.keySet().iterator();
    while( it.hasNext() )
    String key = (String)it.next();
    text = text.replaceAll("\\b"key"
    b", (String)words.get(key));
    return text;
    * @returns: s with the first letter capitalized
    String capitalize(String s)
    return s.substring(0,0).toUpperCase() + s.substring(1);
    }... here's the head of my pirate_words_map.txt
    hello               ahoy
    hi                    yo-ho-ho
    pardon me       avast
    excuse me       arrr
    yes                 aye
    my                 me
    friend             me bucko
    sir                  matey
    madam           proud beauty
    miss comely    wench
    where             whar
    is                    be
    are                  be
    am                  be
    the                  th'
    you                 ye
    your                yer
    tell                be tellin'

    please help me i don t know how to go about this.my teacher ask me to build an interface that work with the code .
    Here is the interface i just build
    import java.util.Map;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.awt.*;
    import javax.swing.*;
    public class boy extends JFrame
    JTextArea englishtxt;
    JLabel head,privatetxtwords;
    JButton translateengtoprivatewords;
    Container c1;
    public boy()
            super("HAKIMADE");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setBackground(Color.white);
            setLocationRelativeTo(null);
            c1 = getContentPane();
             head = new JLabel(" English to private talk Translator");
             englishtxt = new JTextArea("Type your text here", 10,50);
             translateengtoprivatewords = new JButton("Translate");
             privatetxtwords = new JLabel();
            JPanel headlabel = new JPanel();
            headlabel.setLayout(new FlowLayout(FlowLayout.CENTER));
            headlabel.add(head);
            JPanel englishtxtpanel = new JPanel();
            englishtxtpanel.setLayout(new FlowLayout(FlowLayout.CENTER,10,40));
            englishtxtpanel.add(englishtxt);
             JPanel panel1 = new JPanel();
             panel1.setLayout(new BorderLayout());
             panel1.add(headlabel,BorderLayout.NORTH);
             panel1.add(englishtxtpanel,BorderLayout.CENTER);
            JPanel translateengtoprivatewordspanel = new JPanel();
            translateengtoprivatewordspanel.setLayout(new FlowLayout(FlowLayout.CENTER,10,40));
            translateengtoprivatewordspanel.add(translateengtoprivatewords);
             JPanel panel2 = new JPanel();
             panel2.setLayout(new BorderLayout());
             panel2.add(translateengtoprivatewordspanel,BorderLayout.NORTH);
             panel2.add(privatetxtwords,BorderLayout.CENTER);
             JPanel mainpanel = new JPanel();
             mainpanel.setLayout(new BorderLayout());
             mainpanel.add(panel1,BorderLayout.NORTH);
             mainpanel.add(panel2,BorderLayout.CENTER);
             c1.add(panel1, BorderLayout.NORTH);
             c1.add(panel2);
    public static void main(final String args[])
            boy  mp = new boy();
             mp.setVisible(true);
    }..............here is the code,please make this interface work with the code
    public class Translate
    public static void main(String [] args) throws IOException
    if (args.length != 2)
    System.err.println("usage: Translate wordmapfile textfile");
    System.exit(1);
    try
    HashMap words = ReadHashMapFromFile(args[0]);
    System.out.println(ProcessFile(words, args[1]));
    catch (Exception e)
    e.printStackTrace();
    // static helper methods
    * Reads a file into a HashMap. The file should contain lines of the format
    * "key\tvalue\n"
    * @returns a hashmap of the given file
    @SuppressWarnings("unchecked")
    private static HashMap ReadHashMapFromFile(String filename) throws FileNotFoundException, IOException
    BufferedReader in = null;
    HashMap map = null;
    try
    in = new BufferedReader(new FileReader(filename));
    String line;
    map = new HashMap();
    while ((line = in.readLine()) != null)
    String[] fields = line.split("
    t", 2);
    if (fields.length != 2) continue; //just ignore "invalid" lines
    map.put(fields[0], fields[1]);
    finally
    if(in!=null) in.close(); //may throw IOException
    return(map); //returning a reference to local variable is safe in java (unlike C/C++)
    * Process the given file
    * @returns String contains the whole file.
    private static String ProcessFile(Map words, String filename) throws FileNotFoundException, IOException
    BufferedReader in = null;
    StringBuffer out = null;
    try
    in = new BufferedReader(new FileReader(filename));
    out = new StringBuffer();
    String line = null;
    while( (line=in.readLine()) != null )
    out.append(SearchAndReplaceWordsInText(words, line)+"\n");
    finally
    if(in!=null) in.close(); //may throw IOException
    return out.toString();
    * Replaces all occurrences in text of each key in words with it's value.
    * @returns String
    private static String SearchAndReplaceWordsInText(Map words, String text)
    Iterator it = words.keySet().iterator();
    while( it.hasNext() )
    String key = (String)it.next();
    text = text.replaceAll("\\b"key"
    b", (String)words.get(key));
    return text;
    * @returns: s with the first letter capitalized
    String capitalize(String s)
    return s.substring(0,0).toUpperCase() + s.substring(1);
    }... here's the head of my pirate_words_map.txt
    hello               ahoy
    hi                    yo-ho-ho
    pardon me       avast
    excuse me       arrr
    yes                 aye
    my                 me
    friend             me bucko
    sir                  matey
    madam           proud beauty
    miss comely    wench
    where             whar
    is                    be
    are                  be
    am                  be
    the                  th'
    you                 ye
    your                yer
    tell                be tellin'

  • Error while extending two interfaces.

    I am using Weblogic Integration 8.5. When an interface extends two interfaces. Out of which one has a clone method declared. <br>
    This IDE is giving error as <br>
    ERROR: Sample.java:3: This type inherits two versions of method java.lang.Object clone(), one from java.lang.Object and another from com.ParentOne, that have conflicting access restrictions. <br>
    <b>Following are code snippets.</b><br>
    public interface Sample extends ParentOne, ParentTwo {} <br>
    public interface ParentOne { <br>
    public Object clone() throws CloneNotSupportedException; <br>} <br>public interface ParentTwo {} <br>
    <b>Same is working fine in other IDE with the bea JDK as well as sun's jdk. </b>
    <br>
    Can anyone help on this? Many Thanks.

    I am using Weblogic Integration 8.5. When an interface extends two interfaces. Out of which one has a clone method declared. <br>
    This IDE is giving error as <br>
    ERROR: Sample.java:3: This type inherits two versions of method java.lang.Object clone(), one from java.lang.Object and another from com.ParentOne, that have conflicting access restrictions. <br>
    <b>Following are code snippets.</b><br>
    public interface Sample extends ParentOne, ParentTwo {} <br>
    public interface ParentOne { <br>
    public Object clone() throws CloneNotSupportedException; <br>} <br>public interface ParentTwo {} <br>
    <b>Same is working fine in other IDE with the bea JDK as well as sun's jdk. </b>
    <br>
    Can anyone help on this? Many Thanks.

  • Best way to apply a new ACL to an interface that has a ACL already applied

    Hello All:
    I am in the process of cleaning up an ASA 5510 that I have inherited and have a question about applying a new ACL to an interface that is working correctly now with another ACL. The main purpose is I want to change the name of the ACL an clean it up a bit. Also would making this change cause an outage of more than a few minutes?
    For example let's say I have the access group below:
    access-group dmzif2 in interface dmz
    With an ACL:
    access-list dmzif2 extended permit tcp host 10.73.95.200 host 10.73.77.41 eq smtp
    access-list dmzif2 extended permit tcp object obj-10.73.95.0 host 10.73.77.42 eq domain
    I want the new one to be:
    access-group DMZIF_IN in interface dmz
    with ACL:
    access-list DMZIF_IN extended permit tcp host 10.73.95.200 host 10.73.77.41 eq smtp
    access-list DMZIF_IN extended permit tcp object obj-10.73.95.0 host 10.73.77.42 eq domain
    Can I just add the new ACL's entries and issue this statement?
    access-group DMZIF_IN in interface dmz
    Any help is greatly appreciated!
    Dustin

    Thank you for the reply, so once the new ACL is created an added, would this be the correct commands? (sorry this is in production and I don't want to screw it up)
    So add these lines:
    access-list DMZIF_IN extended permit tcp host 10.73.95.200 host 10.73.77.41 eq smtp
    access-list DMZIF_IN extended permit tcp object obj-10.73.95.0 host 10.73.77.42 eq domain
    Then run:
    no access-group dmzif2 in interface dmz
    and then run:
    access-group DMZIF_IN in interface dmz
    and all should be good to go? Also after that how do I remove the old ACL's? with "no" in front of each line, or is there a command to clear all in bulk?
    thanks again for the help!

  • Internal class implementing interface extending abstract interface :P

    Confused ha? Yeah me too. RIght here it goes.
    Theres an abstract interface (abstractIFace) that has for example method1() method2() and method3(). There are two other interfaces iFace1 and iFace2 that extend abstractIFace. Still with me? :P iFace1 only uses method2() whereas iFace2 uses method1(), method2() and method3(). Internal classes implementing these are then used. The reason is so that when returning an object one method can be used that will return different types of objects. But this doesnt work. It says that all the classes in the abstractIFace must be used/implemented but I only want method2() in iFace1 and all in iFace2.
    Just say what the f*ck if this is too confusing cos i think it is and i did a crap job explaining!! :P

    public interface IFace {
        void method1();
        void method2();
        void method3();
    public class Test {
        private static class Class1 implements IFace {
            public void method1() {
                System.out.println("method1");
            public void method2() {
                System.out.println("method2");
            public void method3() {
                System.out.println("method3");
        private static class Class2 implements IFace {
            public void method1() {
                throw new UnsupportedOperationException();
            public void method2() {
                System.out.println("method2");
            public void method3() {
                throw new UnsupportedOperationException();
        public static IFace createObject(boolean flag) {
            return flag ? (IFace) new Class1() : new Class2();
    }

  • Class constructor that implements an interface returns an  "interface", why

    Hi,
    I am studying some code that I need to understand well. This code works, I just don't understand the following:
    A class was defined extending an interface as so:
    public class GeometricShape implements Area {
    // constructor
    public GeometricShape() {
    System.out.println('bla);
    In another file, GeometricShape class was instantiated as follows:
    public class ExampleUse {
    Area g = new GeometricShape();
    My qustion is, why does the code above expects "new GeometricShape()" constructor to return an interface of type Area?
    Can someone explain?
    thanks

    Can someone explain?When a class implements an interface, or extends another class, or when a interface extends another interface, it means that anywhere an instance of the parent class or interface is expected, the child can be used.
    Wherever a Mammal is expected, you can provide a Dog or Cat or Whale or Human or NakedMoleRat. Each of those is a mammal.
    If you say "give me some food," and you don't specify anything else, the person you're talking to can hand you a hamburger or an apple or a bowl of rice. Any of those will meet the requirements you put forth.
    This is how the OO "is-a" relationship maps to Java.

  • Declearing an interface which extends AccessibleHyperText?

    Hello!
    What is wrong with this code, I get the error:
    "465: interface methods can't have body at line 8"
    "465: interface methods can't have body at line 8"
    "465: interface methods can't have body at line 8"
    I have searched for links about how to implement it correctly, but can't find anythhing. Please help!
    package linkfinder;
    import javax.accessibility.AccessibleHypertext;
    import javax.accessibility.AccessibleHyperlink;
    import javax.swing.*;
    public interface MyInterface extends AccessibleHypertext {
    public AccessibleHyperlink getLink(int linkIndex){}
    public int getLinkCount(){}
    public int getLinkIndex(int charIndex){}
    }

    Hi,
    extending an interface is not for debugging - if you extend an interface you present the new method-headers there, that this interface will have in addition to that methods, that the superinterface has already declared.
    An interface never present an implementation of methods - it only says, a class, that will implement this interface, will have to implement the methods, which headers are declared in this interface and all its superinterfaces.
    greetings Marsian

  • Implementing Runnable interface  Vs  extending Thread class

    hi,
    i've come to know by some people says that Implementing Runnbale interface while creating a thread is better option rather than extending a Thread class. HOw and Why? Can anybody explain.?

    Its the same amount of programming work...
    Sometimes it is not possible to extend Thread, becuase your threaded class might have to extend something else.
    The only difference between implementing Runnable and extending Thread is that by extending Thread, each of your threads has a unique object associated with it, whereas with Runnable, many threads share the same object instance.
    http://developerlife.com/lessons/threadsintro/default.htm#Implementing

  • Extending the Interface

    Suppose I create the following interface
    package com.foo;
    import javax.swing.ListModel;
    public interface MyInterface extends ListModel
         public void bar();
    }MyInterface then can be said to enforce the contract of "ListModel".
    So when I use it for my GUI, it works.
    MyInterface myint = new MyInterfaceImpl();
    JList list = new JList();
    list.setModel(myint);I understand that ComboBoxModel extends from ListModel. Given this, I use it for the interface
    hoping to be able to use the implementation of the interface for the model of both JList and JComboBox.
    public interface MyInterface extends ComboBoxModel
         public void bar();
    MyInterface myint = new MyInterfaceImpl();
    JComboBox box = new JComboBox();
    box.setModel(myint);But I generate errors not only when I attempt to apply the updated interface to the model of the JList, but also when I apply it to the model of the JComboBox. But why? If the interface ComboBoxModel extends from the interface ListModel, why do problems arise?

    Just to update...
    I've managed to create a model that satisifies the model for both JList and JComboBox by using a class that extends DefaultComboBoxModel rather than extending the class DefaultListModel.
    And I'm currently reviewing another thread relevant to the subject here..
    http://forum.java.sun.com/thread.jsp?forum=54&thread=519806
    I understand that the interface defines an "is a" relationship between the implementation and the interface (ie ArrayList is a List etc..) So I might assume that it is the same to say that a ComboBoxModel is a ListModel, though this relationship is one of extension. javax.swing.ComboBoxModel extends javax.swing.ListModel. But I am confused as to why the increased specificity would cause the code to generate errors. Surely I am not taking away from the interface..If the interface extends from a subclass of ListModel, doesn't it continue to extend from ListModel?
    The error message when I extend from CombBoxModel rather than ListModel is something like ...
    setModel(javax.swing.ListModel) in javax.swing.JList cannot be applied to com.foo.MyInterface
    Thanks

  • Interface extending another interface

    Hi, i seem to have trouble finding on the internet what happends when one interface extends another interface. Can you explain it here or give me some link where i can find such information. Thanks

    have you tried to create on yet?  sometimes the best way to learn is just to do it.
    the truth is, extension of an interface is no different than the extension of a regular class.  when you finally implement your subClassed interface, you will just have to remember to add all unImplemented methods of both interfaces.  generally for soemthing like this its best to just implement multiple interfaces so that you will always know what you need to implement before run time otherwise you are bound to receive a lot of errors for not having implemented those methods.

  • Report Generation Toolkit producing error -2147417842, "The application called an interface that was marshalled for a different thread."

    Hi everybody,
    I've got an application that logs data to an Excel spreadsheet using the Report Generation Toolkit.  My VI's have worked fine in the past using Excel XP, but since I've upgraded to Excel 2007, I am getting COM errors like this one:
    "Error -2147417842 occurred at The application called an interface that was marshalled for a different thread. in Excel_Insert_Text.vi"  That is the exact wording, even with the weird punctuation and capitalization.
    The first occurrence of the error is not determinate.  Sometimes, up to 10 logging sessions, involving a new .xls file, can occur before this error pops up.  Once this error occurs, I must quit LabVIEW to resolve it.  If I try to do anything with Excel, I always get this error, although sometimes it comes out of different source VIs.  Excel_Open.vi is another.
    These logging VIs have worked just fine until upgrading to Excel 2007.  I checked, and I was using a really old version of the Report Generation Toolkit, v1.0.1.  I read the documentation and had a big sigh of relief when I realized I needed to upgraded to v1.1.2 to get Excel 2007 support.  However, even after upgrading, I'm still getting the same errors.  I'm using LabVIEW 8.0.1, and I'm also building these VIs into an application.   The error occurs both in the LabVIEW IDE and in the built application.  Does anybody out there have any idea what I can do to fix this?  I googled a little, and discovered this is a COM error, but I can't find any references to the Report Generation Toolkit specifically.
    Thanks,
    Phil
    Solved!
    Go to Solution.

    Hi Christian,
    I do not see that exact option listed, do you mean "user interface"?  I recognize the "Run in UI Thread" option, it's on the Call Library Function Node.
    I checked, and my top-level VI has "same as caller" set, and I believe all my VIs are set to "same as caller".  Are you suggesting I change my top-level VI preferred execution environment to "user interface", or just the logging sub-VIs that use the Report Generation Toolkit?
    Thanks,
    Phil
    Attachments:
    VI_properties.png ‏15 KB

  • Possible to segment traffic between 2 interfaces? And other questions...

    I would like to set my G5 up as a server utilizing a second connection and to keep traffic seperated between this server connection and my regular internet connection (would be wireless). I'm pretty sure this alone is fairly straightforward and can be accomplished by setting up the new interface and moving it down to the bottom of the connection list with wireless at the top. That should keep all non-specific traffic from flowing out the ethernet/server connection - I think.
    If the above works the way I stated then I would also want to firewall ONLY the ethernet/server connection (the wireless has it's own hardware firewall). AND - this is the tricky part - I also want to add a fake interface that has a fake IP and bind that to the "real" ethernet/server connection. The reason for that is because I need a static IP to bind the service to. I know if the connection list thing works to flow the traffic that if I had an external router on the server connection, this wouldn't be needed. I'd already have a fake IP to bind to and I wouldn't have to run the firewall on the Mac. But I don't and I'd rather not have to buy one.
    So can this be done through the network/sharing preferance panes? If so, are there any "gotchas" I should be aware of? If not, is there any software tool out there that would make setting this up easier/faster? I'm not opposed to doing it all via command line, but I'm a bit rusty with my linux/unix admin knowledge. Plus I'm not 100% certain how to set all that up command line wise without screwing up OS X!
    Thanks.

    I'm not sure I fully understand what you are attempting to accomplish. Lets see if I have the general idea.
    You have a single G5, that you want to use as both your desktop machine and also to provided specific services, such as web, email, etc.
    You have some type of hardware firewall/security appliance.
    You have some type of wireless access point.
    You don't seem to have any type of router or switch in your configuration.
    You want all of your server based traffic to be sent and received on it's own Ethernet port. You want your personal Internet traffic to be sent and received on your wireless connection.
    So my questions are:
    Where is the server traffic going to, coming from? Who is accessing the server, is it users on the Internet, or just computers on your own LAN (which you didn't mention).
    If your server is to allow data from or send to the Internet, then you need to have a way to route the traffic there. Do you have more then one method to access the Internet, or will all traffic, both personal and server being going though the same Internet access pipe?
    If it is all going through the same pipe, and you only have the single computer, I don't understand why you wish to segment the traffic.
    If on the other hand you have multiple computers on your LAN. then segmenting traffic may make sense. This would allow access to your server and keep your LAN well secure.
    Anyway, to get to specifics, you'll need to use the terminal app to bind specific services to specific IP's and ports on your Mac. You will also need to manually configure the firewall to be able to select specific connection ports and bindings. However, while I think it can be done, I'm not sure it makes a great deal of sense.
    I would be more inclined to suggest a router or switch that can provide VLAN support, or a router that provides true DMZ support, would be a good way to go.
    Anyway, a little more info would be helpful.
    Oh and if I have this totally worng in what I think your doing.. My mistake.
    Tom N.

Maybe you are looking for

  • Want to create a InDesign document that is Interactive as a PDF

    I want to create an InDesign form that is made into a PDF that can be filled out (populated with their answers) and returned via email to someone. Can I make the document in InDesign or do I have to do it in Acrobat? I am running CS2. If you can poin

  • Suggestion for trackpad "virtual button" area.  PLEASE!

    Thank you for fixing the "clicks not registering" issue. I have another problem that is quite frustrating, coming from a previous macbook pro. I am used to the two finger right click and often when I'm highlighting text I'm using one finger to move t

  • Import a BPM project .jar file in jedevloper

    Hi, Can we import a BPM .jar file in jdeveloper, to regenrate the underlying code. this jar is having the BPM and SOA code. << the actual case is to import the deployed BPM .jar file project in jdeveloper. >> thanks, rps

  • [SOLVED] Very newbish, but how do you install Flash in Opera 9.5?

    I know that flash doesn't work with opera 9.25, so I downloaded 9.5b. So, now how do I install flash? The installer I downloaded from the adobe site still only wants to install in the mozilla directory. Last edited by pogeymanz (2008-03-15 04:14:38)

  • Oracle.adf.controller.ControllerException: ADFC-00011

    We have installed a cluster with Weblogic PS3. After we startup the wohole cluster, one of the manged serevrs does not start correctly. We get: ####<Mar 15, 2011 12:43:01 PM CET> <Error> <HTTP> <l1-mwpsysapp03.nl.rsg> <MWPSYS-MS1> <[ACTIVE] ExecuteTh