yichen
2 years ago
19 changed files with 1680 additions and 203 deletions
@ -0,0 +1,13 @@ |
|||||||
|
package com.fanruan.annotation; |
||||||
|
|
||||||
|
import java.lang.annotation.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/31 18:34 |
||||||
|
*/ |
||||||
|
@Inherited |
||||||
|
@Target({ElementType.METHOD}) |
||||||
|
@Retention(RetentionPolicy.RUNTIME) |
||||||
|
public @interface LocalMethod { |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
package com.fanruan.annotation; |
||||||
|
|
||||||
|
import java.lang.annotation.ElementType; |
||||||
|
import java.lang.annotation.Retention; |
||||||
|
import java.lang.annotation.RetentionPolicy; |
||||||
|
import java.lang.annotation.Target; |
||||||
|
|
||||||
|
/** |
||||||
|
* mark the method not implement |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/31 10:30 |
||||||
|
*/ |
||||||
|
@Target({ElementType.METHOD}) |
||||||
|
@Retention(RetentionPolicy.RUNTIME) |
||||||
|
public @interface NotImplemented { |
||||||
|
} |
@ -0,0 +1,8 @@ |
|||||||
|
package com.fanruan.exception; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/31 10:36 |
||||||
|
*/ |
||||||
|
public class NotImplementedException extends RuntimeException{ |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
package com.fanruan.service.jdbc; |
||||||
|
|
||||||
|
import com.fanruan.annotation.LocalMethod; |
||||||
|
|
||||||
|
import java.util.Properties; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/25 16:56 |
||||||
|
*/ |
||||||
|
public abstract class AbstractBind{ |
||||||
|
|
||||||
|
private String ID; |
||||||
|
|
||||||
|
protected Properties info; |
||||||
|
|
||||||
|
/** |
||||||
|
* These corresponding code is to make the format correct, because the getID() |
||||||
|
* will be called, even if the filed is never not null. |
||||||
|
* @return ID |
||||||
|
*/ |
||||||
|
public String getID(){ |
||||||
|
return this.ID; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* These corresponding code is to make the format correct, because the getID() |
||||||
|
* will be called, even if the filed is never not null. |
||||||
|
* @return ID |
||||||
|
*/ |
||||||
|
public void setID(String ID){ |
||||||
|
this.ID = ID; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Set info to bind class generated by this class
|
||||||
|
* @param info properties need to bind with agent |
||||||
|
*/ |
||||||
|
public void setInfo(Properties info){ |
||||||
|
this.info = info; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,61 @@ |
|||||||
|
package com.fanruan.service.jdbc; |
||||||
|
|
||||||
|
import com.fanruan.annotation.LocalMethod; |
||||||
|
import com.fanruan.service.jdbc.AbstractBind; |
||||||
|
|
||||||
|
import java.util.Properties; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/31 20:35 |
||||||
|
*/ |
||||||
|
public class BasedBind extends AbstractBind { |
||||||
|
|
||||||
|
@LocalMethod |
||||||
|
@Override |
||||||
|
public String getID() { |
||||||
|
return super.getID(); |
||||||
|
} |
||||||
|
|
||||||
|
@LocalMethod |
||||||
|
@Override |
||||||
|
public void setID(String ID) { |
||||||
|
super.setID(ID); |
||||||
|
} |
||||||
|
|
||||||
|
@LocalMethod |
||||||
|
@Override |
||||||
|
public void setInfo(Properties info) { |
||||||
|
super.setInfo(info); |
||||||
|
} |
||||||
|
|
||||||
|
@LocalMethod |
||||||
|
@Override |
||||||
|
public int hashCode() { |
||||||
|
return super.hashCode(); |
||||||
|
} |
||||||
|
|
||||||
|
@LocalMethod |
||||||
|
@Override |
||||||
|
public boolean equals(Object obj) { |
||||||
|
return super.equals(obj); |
||||||
|
} |
||||||
|
|
||||||
|
@LocalMethod |
||||||
|
@Override |
||||||
|
protected Object clone() throws CloneNotSupportedException { |
||||||
|
return super.clone(); |
||||||
|
} |
||||||
|
|
||||||
|
@LocalMethod |
||||||
|
@Override |
||||||
|
public String toString() { |
||||||
|
return super.toString(); |
||||||
|
} |
||||||
|
|
||||||
|
@LocalMethod |
||||||
|
@Override |
||||||
|
protected void finalize() throws Throwable { |
||||||
|
super.finalize(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,71 @@ |
|||||||
|
package com.fanruan.service.jdbc; |
||||||
|
|
||||||
|
import com.fanruan.annotation.RemoteClass; |
||||||
|
|
||||||
|
import java.sql.Array; |
||||||
|
import java.sql.ResultSet; |
||||||
|
import java.sql.SQLException; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/31 16:51 |
||||||
|
*/ |
||||||
|
@RemoteClass(remoteClassName = "com.fanruan.agent.jdbc.AgentArray") |
||||||
|
public class ServiceArray extends BasedBind implements Array { |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getBaseTypeName() throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getBaseType() throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object getArray() throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object getArray(Map<String, Class<?>> map) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object getArray(long index, int count) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object getArray(long index, int count, Map<String, Class<?>> map) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ResultSet getResultSet() throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ResultSet getResultSet(Map<String, Class<?>> map) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ResultSet getResultSet(long index, int count) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public ResultSet getResultSet(long index, int count, Map<String, Class<?>> map) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void free() throws SQLException { |
||||||
|
|
||||||
|
} |
||||||
|
} |
@ -0,0 +1,73 @@ |
|||||||
|
package com.fanruan.service.jdbc; |
||||||
|
|
||||||
|
import com.fanruan.annotation.RemoteClass; |
||||||
|
import com.fanruan.service.jdbc.AbstractBind; |
||||||
|
|
||||||
|
import java.io.InputStream; |
||||||
|
import java.io.OutputStream; |
||||||
|
import java.sql.Blob; |
||||||
|
import java.sql.SQLException; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/29 20:32 |
||||||
|
*/ |
||||||
|
|
||||||
|
@RemoteClass(remoteClassName = "com.fanruan.agent.jdbc.AgentBlob") |
||||||
|
public class ServiceBlob extends BasedBind implements Blob { |
||||||
|
|
||||||
|
@Override |
||||||
|
public long length() throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public byte[] getBytes(long pos, int length) throws SQLException { |
||||||
|
return new byte[0]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public InputStream getBinaryStream() throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public long position(byte[] pattern, long start) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public long position(Blob pattern, long start) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int setBytes(long pos, byte[] bytes) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int setBytes(long pos, byte[] bytes, int offset, int len) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public OutputStream setBinaryStream(long pos) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void truncate(long len) throws SQLException { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void free() throws SQLException { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public InputStream getBinaryStream(long pos, long length) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,83 @@ |
|||||||
|
package com.fanruan.service.jdbc; |
||||||
|
|
||||||
|
import com.fanruan.annotation.RemoteClass; |
||||||
|
|
||||||
|
import java.io.InputStream; |
||||||
|
import java.io.OutputStream; |
||||||
|
import java.io.Reader; |
||||||
|
import java.io.Writer; |
||||||
|
import java.sql.Clob; |
||||||
|
import java.sql.SQLException; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/29 20:24 |
||||||
|
*/ |
||||||
|
@RemoteClass(remoteClassName = "com.fanruan.agent.jdbc.AgentClob") |
||||||
|
public class ServiceClob extends BasedBind implements Clob { |
||||||
|
|
||||||
|
@Override |
||||||
|
public long length() throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getSubString(long pos, int length) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Reader getCharacterStream() throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public InputStream getAsciiStream() throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public long position(String searchstr, long start) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public long position(Clob searchstr, long start) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int setString(long pos, String str) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int setString(long pos, String str, int offset, int len) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public OutputStream setAsciiStream(long pos) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Writer setCharacterStream(long pos) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void truncate(long len) throws SQLException { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void free() throws SQLException { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Reader getCharacterStream(long pos, long length) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,69 @@ |
|||||||
|
package com.fanruan.service.jdbc; |
||||||
|
|
||||||
|
import com.fanruan.annotation.RemoteClass; |
||||||
|
|
||||||
|
import java.sql.ParameterMetaData; |
||||||
|
import java.sql.SQLException; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/25 11:13 |
||||||
|
*/ |
||||||
|
@RemoteClass(remoteClassName = "com.fanruan.agent.jdbc.AgentParameterMetaData") |
||||||
|
public class ServiceParameterMetaData extends BasedBind implements ParameterMetaData { |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getParameterCount() throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int isNullable(int param) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isSigned(int param) throws SQLException { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getPrecision(int param) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getScale(int param) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getParameterType(int param) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getParameterTypeName(int param) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String getParameterClassName(int param) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getParameterMode(int param) throws SQLException { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public <T> T unwrap(Class<T> iface) throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean isWrapperFor(Class<?> iface) throws SQLException { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
package com.fanruan.service.jdbc; |
||||||
|
|
||||||
|
import com.fanruan.annotation.RemoteClass; |
||||||
|
|
||||||
|
import java.sql.SQLException; |
||||||
|
import java.sql.Struct; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Yichen Dai |
||||||
|
* @date 2022/8/31 17:03 |
||||||
|
*/ |
||||||
|
@RemoteClass(remoteClassName = "com.fanruan.agent.jdbc.AgentStruct") |
||||||
|
public class ServiceStruct extends BasedBind implements Struct { |
||||||
|
@Override |
||||||
|
public String getSQLTypeName() throws SQLException { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object[] getAttributes() throws SQLException { |
||||||
|
return new Object[0]; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Object[] getAttributes(Map<String, Class<?>> map) throws SQLException { |
||||||
|
return new Object[0]; |
||||||
|
} |
||||||
|
} |
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue