Target.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package cn.nosum.support.proxy;
  2. /**
  3. * Target Object Information
  4. *
  5. * @author Young.
  6. */
  7. public interface Target<T> {
  8. /**
  9. * Dynamic Client Name.
  10. *
  11. * @return name
  12. */
  13. String name();
  14. /**
  15. * Dynamic Client Type
  16. *
  17. * @return type
  18. */
  19. Class<T> type();
  20. /**
  21. * Dynamic Client RefName.
  22. *
  23. * @return refName
  24. */
  25. String refName();
  26. /**
  27. * Dynamic Client RefType.
  28. *
  29. * @return refType
  30. */
  31. Class<?> refType();
  32. class DefaultTarget<T> implements Target<T> {
  33. private final Class<T> type;
  34. private final String name;
  35. private final String refName;
  36. private final Class<?> refType;
  37. public DefaultTarget(String name, Class<T> type, String refName, Class<?> refType) {
  38. this.name = name;
  39. this.type = type;
  40. this.refName = refName;
  41. this.refType = refType;
  42. }
  43. @Override
  44. public Class<T> type() {
  45. return type;
  46. }
  47. @Override
  48. public String name() {
  49. return name;
  50. }
  51. @Override
  52. public String refName() {
  53. return refName;
  54. }
  55. @Override
  56. public Class<?> refType() {
  57. return refType;
  58. }
  59. }
  60. }