Class: VertxServiceDiscovery::ServiceReference

Inherits:
Object
  • Object
show all
Defined in:
/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb

Overview

Once a consumer has chosen a service, it builds a ServiceReference managing the binding with the chosen service provider.

The reference lets the consumer: * access the service (via a proxy or a client) with the #get method * release the reference - so the binding between the consumer and the provider is removed

Constant Summary

@@j_api_type =
Object.new

Class Method Summary (collapse)

Instance Method Summary (collapse)

Class Method Details

+ (Boolean) accept?(obj)

Returns:

  • (Boolean)


22
23
24
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 22

def @@j_api_type.accept?(obj)
  obj.class == ServiceReference
end

+ (Object) j_api_type



31
32
33
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 31

def self.j_api_type
  @@j_api_type
end

+ (Object) j_class



34
35
36
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 34

def self.j_class
  Java::IoVertxServicediscovery::ServiceReference.java_class
end

+ (Object) unwrap(obj)



28
29
30
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 28

def @@j_api_type.unwrap(obj)
  obj.j_del
end

+ (Object) wrap(obj)



25
26
27
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 25

def @@j_api_type.wrap(obj)
  ServiceReference.new(obj)
end

Instance Method Details

- (Object) cached

Gets the service object if already retrieved. It won't try to acquire the service object if not retrieved yet.

Returns:

  • (Object)
    the object, null if not yet retrieved

Raises:

  • (ArgumentError)


79
80
81
82
83
84
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 79

def cached
  if !block_given?
    return ::Vertx::Util::Utils.from_object(@j_del.java_method(:cached, []).call())
  end
  raise ArgumentError, "Invalid arguments when calling cached()"
end

- (Object) cached_as(x = nil)

Gets the service object if already retrieved. It won't try to acquire the service object if not retrieved yet. Unlike #cached, this method return the warpped object to the desired (given) type.

Parameters:

  • x (Nil) (defaults to: nil)
    the type of object

Returns:

  • (Object)
    the object, null if not yet retrieved

Raises:

  • (ArgumentError)


71
72
73
74
75
76
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 71

def cached_as(x=nil)
  if x.class == Class && !block_given?
    return ::Vertx::Util::Utils.v_type_of(x).wrap(@j_del.java_method(:cachedAs, [Java::JavaLang::Class.java_class]).call(::Vertx::Util::Utils.j_class_of(x)))
  end
  raise ArgumentError, "Invalid arguments when calling cached_as(#{x})"
end

- (Object) get

Gets the object to access the service. It can be a proxy, a client or whatever object. The type depends on the service type and the server itself. This method returns the Java version and primary facet of the object, use #get_as to retrieve the polyglot instance of the object or another facet..

Returns:

  • (Object)
    the object to access the service

Raises:

  • (ArgumentError)


51
52
53
54
55
56
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 51

def get
  if !block_given?
    return ::Vertx::Util::Utils.from_object(@j_del.java_method(:get, []).call())
  end
  raise ArgumentError, "Invalid arguments when calling get()"
end

- (Object) get_as(x = nil)

Gets the object to access the service. It can be a proxy, a client or whatever object. The type depends on the service type and the server itself. This method wraps the service object into the desired type.

Parameters:

  • x (Nil) (defaults to: nil)
    the type of object

Returns:

  • (Object)
    the object to access the service wrapped to the given type

Raises:

  • (ArgumentError)


61
62
63
64
65
66
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 61

def get_as(x=nil)
  if x.class == Class && !block_given?
    return ::Vertx::Util::Utils.v_type_of(x).wrap(@j_del.java_method(:getAs, [Java::JavaLang::Class.java_class]).call(::Vertx::Util::Utils.j_class_of(x)))
  end
  raise ArgumentError, "Invalid arguments when calling get_as(#{x})"
end

- (true, false) holding?(object = nil)

Checks whether or not the service reference has the given service object.

Parameters:

  • object (Object) (defaults to: nil)
    the service object, must not be null

Returns:

  • (true, false)
    true if the service reference service object is equal to the given object, false otherwise.

Raises:

  • (ArgumentError)


97
98
99
100
101
102
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 97

def holding?(object=nil)
  if ::Vertx::Util::unknown_type.accept?(object) && !block_given?
    return @j_del.java_method(:isHolding, [Java::java.lang.Object.java_class]).call(::Vertx::Util::Utils.to_object(object))
  end
  raise ArgumentError, "Invalid arguments when calling holding?(#{object})"
end

- (Hash) record

Returns the service record.

Returns:

  • (Hash)
    the service record.

Raises:

  • (ArgumentError)


38
39
40
41
42
43
44
45
46
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 38

def record
  if !block_given?
    if @cached_record != nil
      return @cached_record
    end
    return @cached_record = @j_del.java_method(:record, []).call() != nil ? JSON.parse(@j_del.java_method(:record, []).call().toJson.encode) : nil
  end
  raise ArgumentError, "Invalid arguments when calling record()"
end

- (void) release

This method returns an undefined value.

Releases the reference. Once released, the consumer must not use the reference anymore. This method must be idempotent and defensive, as multiple call may happen.

Raises:

  • (ArgumentError)


88
89
90
91
92
93
# File '/Users/julien/java/vertx-aggregator/modules/vertx-lang-ruby/vertx-lang-ruby/target/classes/vertx-service-discovery/service_reference.rb', line 88

def release
  if !block_given?
    return @j_del.java_method(:release, []).call()
  end
  raise ArgumentError, "Invalid arguments when calling release()"
end