Proyb2
Proyb2

Reputation: 993

Merge into Java code

Using a sample from xSocket which will run xSocketHandler as a new process, I want to customize and moving all of these code into other java file, can I copy public class xSocketDataHandler implements IDataHandler and paste into different filename say main.java?

import java.io.IOException;
import java.nio.BufferUnderflowException;
import java.nio.channels.ClosedChannelException;
import org.xsocket.*;
import org.xsocket.connection.*;

public class xSocketDataHandler implements IDataHandler
{

    public boolean onData(INonBlockingConnection nbc) throws IOException, BufferUnderflowException, ClosedChannelException, MaxReadSizeExceededException
    {
        try
        {
            String data = nbc.readStringByDelimiter("\0");
            //nbc.write("Reply" + data + "\0");
            nbc.write("+A4\0");

            if(data.equalsIgnoreCase("SHUTDOWN"))
                xSocketServer.shutdownServer();
        }
        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }

        return true;
    }
}

Upvotes: 0

Views: 162

Answers (2)

Johnbabu Koppolu
Johnbabu Koppolu

Reputation: 3252

No, you can't do that without reducing the visibility of xSocketDataHandler to default. If you don't want to do that, your file name should be xSocketDataHandler.java

You must be having class xSocketDataHandler in a file of the same name already since it is public. You could move other non public classes in this file to Main.java instead.

Upvotes: 1

Benn
Benn

Reputation: 1420

A public class will need to be in a file named according to the class, so in this case it would be xSocketDataHandler.java.

Convention is also to name java classes starting with an upper-case letter, so it would be public class XSocketDataHandler and file XSocketDataHandler.java. This isn't required, though.

Upvotes: 0

Related Questions