Simple singly linked list in Java
Initial impressions:


public Node newNode(T data) shouldn't be on the interface, why would anything outside of the list need to construct one?
print shouldn't be on the interface, I know you say it's for debugging, but a better approach would be to provider an iterator so that something outside the list could iterate the items and print them.
I don't like the fact that Node is visible outside of the list class.  It reveals too much of the underlying functionality.  What happens if I call 'newNode' then pass the contents of it to the delete method?
One of your delete methods takes in a 'delete_at' parameter, then ignores it in certain conditions and deletes the last member of the list instead...

public void delete(ILinkedList.posForOperation delete_at, ILinkedList.Node node) {
        if(node.next == null)
            delete(ILinkedList.posForOperation.END);
        else if(delete_at == ILinkedList.posForOperation.AFTER){

void deleteAtPos(int pos), there's no way for a caller to really know where in the list an item is (unless they count as they insert them?), so what's the purpose of this method?