JGDMS Project 3.0-SNAPSHOT API Documentation

Skip navigation links
A C D E F G H I L M N O P R S T U 

A

addAttributes(ServiceID, Uuid, EntryRep[]) - Method in interface org.apache.river.reggie.proxy.Registrar
Adds the specified attribute sets (those that aren't duplicates of existing attribute sets) to the registered service item.
addAttributes(Entry[]) - Method in class org.apache.river.reggie.proxy.Registration
 
addLookupAttributes(Entry[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
addLookupGroups(String[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
addLookupLocators(LookupLocator[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
addMemberGroups(String[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
AdminProxy - Class in org.apache.river.reggie.proxy
Proxy for administering a registrar, returned from the getAdmin method of the main registrar proxy.
attributeSetTemplateAtIndex(int) - Method in class org.apache.river.reggie.proxy.Template
 
attributeSetTemplates() - Method in class org.apache.river.reggie.proxy.Template
 
attributeSetTemplatesLength() - Method in class org.apache.river.reggie.proxy.Template
 
attributeSetTemplType() - Method in class org.apache.river.reggie.proxy.Template
 

C

cancel() - Method in class org.apache.river.reggie.proxy.EventLease
 
cancel() - Method in class org.apache.river.reggie.proxy.ServiceLease
 
cancelEventLease(long, Uuid) - Method in interface org.apache.river.reggie.proxy.Registrar
Cancels an event lease.
cancelLeases(Object[], Uuid[]) - Method in interface org.apache.river.reggie.proxy.Registrar
Cancels service and event leases from a LeaseMap.
cancelServiceLease(ServiceID, Uuid) - Method in interface org.apache.river.reggie.proxy.Registrar
Cancels a service lease.
checkRegistrantServiceID(ServiceID, Logger, Level) - Static method in class org.apache.river.reggie.proxy.Util
Checks if the value of the given service ID to register conforms to the ServiceID specification, logging a message to the provided logger at the specified logging level if it doesn't.
clone() - Method in class org.apache.river.reggie.proxy.EntryRep
Deep clone (which just means cloning the fields array too).
clone() - Method in class org.apache.river.reggie.proxy.Item
Deep clone.
codebase - Variable in class org.apache.river.reggie.proxy.EntryClassBase
The codebase.
codebase - Variable in class org.apache.river.reggie.proxy.EntryRep
The codebase of the entry class.
codebase - Variable in class org.apache.river.reggie.proxy.Item
The codebase of the service object.
codebase - Variable in class org.apache.river.reggie.proxy.ServiceTypeBase
The codebase.

D

destroy() - Method in class org.apache.river.reggie.proxy.AdminProxy
 
doRenew(long) - Method in class org.apache.river.reggie.proxy.EventLease
Renews the event lease associated with an instance of this class.
doRenew(long) - Method in class org.apache.river.reggie.proxy.ServiceLease
Do the actual renew.
durations - Variable in class org.apache.river.reggie.proxy.RenewResults
The granted duration for each lease.

E

eclass - Variable in class org.apache.river.reggie.proxy.EntryClassBase
The EntryClass.
eclass - Variable in class org.apache.river.reggie.proxy.EntryRep
The Class of the Entry converted to EntryClass.
EntryClass - Class in org.apache.river.reggie.proxy
An EntryClass is a descriptor for an entry class, packaged up for transmission between client-side proxies and the registrar server.
EntryClass(AtomicSerial.GetArg) - Constructor for class org.apache.river.reggie.proxy.EntryClass
 
EntryClass(Class, EntryClass) - Constructor for class org.apache.river.reggie.proxy.EntryClass
Should only be called by ClassMapper
EntryClassBase - Class in org.apache.river.reggie.proxy
An EntryClass annotated with a codebase.
EntryClassBase(EntryClass, String) - Constructor for class org.apache.river.reggie.proxy.EntryClassBase
Simple constructor
EntryClassBase(AtomicSerial.GetArg) - Constructor for class org.apache.river.reggie.proxy.EntryClassBase
 
EntryRep - Class in org.apache.river.reggie.proxy
An EntryRep contains the fields of an Entry packaged up for transmission between client-side proxies and the registrar server.
EntryRep(EntryRep, boolean) - Constructor for class org.apache.river.reggie.proxy.EntryRep
For clone and Reggie
equals(Object) - Method in class org.apache.river.reggie.proxy.AdminProxy
Proxies for servers with the same service ID are considered equal.
equals(Object) - Method in class org.apache.river.reggie.proxy.EntryClass
Returns true if the object passed in is an instance of EntryClass with the same type hash as this object.
equals(Object) - Method in class org.apache.river.reggie.proxy.EntryRep
EntryReps are equal if they have the same class and the fields are pairwise equal.
equals(Object) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
Proxies for servers with the same service ID are considered equal.
equals(Object) - Method in class org.apache.river.reggie.proxy.Registration
Returns true if registration Uuids match, false otherwise.
equals(Object) - Method in class org.apache.river.reggie.proxy.ServiceType
Returns true if the object passed in is an instance of Type with the same type hash.
EventLease - Class in org.apache.river.reggie.proxy
When a registrar (lookup service) grants a lease on an event registration on behalf of some object (client), a proxy is employed to allow the client to interact with the lease; this class is the implementation of that proxy.
exceptions - Variable in class org.apache.river.reggie.proxy.RenewResults
Any exceptions thrown.

F

fields() - Method in class org.apache.river.reggie.proxy.EntryRep
 

G

get() - Method in class org.apache.river.reggie.proxy.EntryRep
Convert back to an Entry.
get() - Method in class org.apache.river.reggie.proxy.Item
Convert back to a ServiceItem.
getAdmin() - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getAttributeSetAtIndex(int) - Method in class org.apache.river.reggie.proxy.Item
 
getAttributeSets() - Method in class org.apache.river.reggie.proxy.Item
 
getAttributeSetsLength() - Method in class org.apache.river.reggie.proxy.Item
 
getBootstrapProxy() - Method in class org.apache.river.reggie.proxy.RegistrarEvent
 
getEntryClasses(Template) - Method in interface org.apache.river.reggie.proxy.Registrar
Looks at all service items that match the specified template, finds every entry (among those service items) that either doesn't match any entry templates or is a subclass of at least one matching entry template, and returns the set of the (most specific) classes of those entries.
getEntryClasses(ServiceTemplate) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getFieldValues(Template, int, int) - Method in interface org.apache.river.reggie.proxy.Registrar
Looks at all service items that match the specified template, finds every entry (among those service items) that matches tmpl.attributeSetTemplates[setIndex], and returns the set of values of the specified field of those entries.
getFieldValues(ServiceTemplate, int, String) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getGroups() - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getInstance(Registrar, ServiceID) - Static method in class org.apache.river.reggie.proxy.AdminProxy
Returns AdminProxy or ConstrainableAdminProxy instance, depending on whether given server implements RemoteMethodControl.
getInstance(Registrar, ServiceID, long, Uuid, long) - Static method in class org.apache.river.reggie.proxy.EventLease
Returns EventLease or ConstrainableEventLease instance, depending on whether given server implements RemoteMethodControl.
getInstance(Registrar, ServiceID) - Static method in class org.apache.river.reggie.proxy.RegistrarProxy
Returns RegistrarProxy or ConstrainableRegistrarProxy instance, depending on whether given server implements RemoteMethodControl.
getInstance(Registrar, ServiceLease) - Static method in class org.apache.river.reggie.proxy.Registration
Returns Registration or ConstrainableRegistration instance, depending on whether given server implements RemoteMethodControl.
getInstance(Object, ServiceLease, MethodConstraints) - Static method in class org.apache.river.reggie.proxy.Registration
Portable factory Returns Registration or ConstrainableRegistration instance, depending on whether given server implements RemoteMethodControl.
getInstance(Registrar, ServiceID, ServiceID, Uuid, long) - Static method in class org.apache.river.reggie.proxy.ServiceLease
Returns ServiceLease or ConstrainableServiceLease instance, depending on whether given server implements RemoteMethodControl.
getInterfaces() - Method in class org.apache.river.reggie.proxy.ServiceType
Return the interfaces.
getLease() - Method in class org.apache.river.reggie.proxy.Registration
 
getLocator() - Method in interface org.apache.river.reggie.proxy.Registrar
Returns a LookupLocator that can be used if necessary for unicast discovery of the lookup service.
getLocator() - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getLookupAttributes() - Method in class org.apache.river.reggie.proxy.AdminProxy
 
getLookupGroups() - Method in class org.apache.river.reggie.proxy.AdminProxy
 
getLookupLocators() - Method in class org.apache.river.reggie.proxy.AdminProxy
 
getMemberGroups() - Method in class org.apache.river.reggie.proxy.AdminProxy
 
getMethod(Class, String, Class[]) - Static method in class org.apache.river.reggie.proxy.Util
Returns Method object for specified method, which should always exist.
getName() - Method in class org.apache.river.reggie.proxy.EntryClass
Returns the name of this type
getName() - Method in class org.apache.river.reggie.proxy.ServiceType
Returns the name of this type
getNumFields() - Method in class org.apache.river.reggie.proxy.EntryClass
Return the number of public fields (including superclasses)
getNumInstances() - Method in class org.apache.river.reggie.proxy.EntryClass
Returns the number of times this type is used in service registrations
getNumTemplates() - Method in class org.apache.river.reggie.proxy.EntryClass
Returns the number of times this type is used in event registrations
getProxy() - Method in class org.apache.river.reggie.proxy.Item
 
getProxy() - Method in class org.apache.river.reggie.proxy.RegistrarEvent
 
getProxy() - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getProxys() - Method in class org.apache.river.reggie.proxy.Matches
 
getReferentUuid() - Method in class org.apache.river.reggie.proxy.AdminProxy
 
getReferentUuid() - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getReferentUuid() - Method in class org.apache.river.reggie.proxy.Registration
 
getReplacement() - Method in class org.apache.river.reggie.proxy.EntryClass
Return the replacement, if any, containing only name and rep.
getReplacement() - Method in class org.apache.river.reggie.proxy.ServiceType
Return the replacement, if any, containing only name and rep.
getServiceID() - Method in class org.apache.river.reggie.proxy.Item
 
getServiceID() - Method in class org.apache.river.reggie.proxy.RegistrarEvent
 
getServiceID() - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getServiceID() - Method in class org.apache.river.reggie.proxy.Registration
 
getServiceItem() - Method in class org.apache.river.reggie.proxy.RegistrarEvent
Returns the new state of the serviceItem, or null if the serviceItem was deleted from the lookup service.
getServiceTypes(Template, String) - Method in interface org.apache.river.reggie.proxy.Registrar
Looks at all service items that match the specified template, and for every service item finds the most specific type (class or interface) or types the service item is an instance of that are neither equal to, nor a superclass of, any of the service types in the template and that have names that start with the specified prefix, and returns the set of all such types.
getServiceTypes(ServiceTemplate, String) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
getSuperclass() - Method in class org.apache.river.reggie.proxy.EntryClass
Return the superclass descriptor
getSuperclass() - Method in class org.apache.river.reggie.proxy.ServiceType
Return the superclass descriptor
getUnicastPort() - Method in class org.apache.river.reggie.proxy.AdminProxy
 

H

hash - Variable in class org.apache.river.reggie.proxy.EntryClass
Hash for the type
hash - Variable in class org.apache.river.reggie.proxy.ServiceType
Hash for the type
hashCode() - Method in class org.apache.river.reggie.proxy.AdminProxy
Returns service ID hash code.
hashCode() - Method in class org.apache.river.reggie.proxy.EntryClass
Return a hashcode for this type.
hashCode() - Method in class org.apache.river.reggie.proxy.EntryRep
We don't need this in the client or the server, but since we redefine equals we provide a minimal hashCode that works.
hashCode() - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
hashCode() - Method in class org.apache.river.reggie.proxy.Registration
Returns the registration Uuid's hash code.
hashCode() - Method in class org.apache.river.reggie.proxy.ServiceType
Return a hashcode for this type.

I

interfaces - Variable in class org.apache.river.reggie.proxy.ServiceType
Descriptor for the interfaces.
isAssignableFrom(EntryClass) - Method in class org.apache.river.reggie.proxy.EntryClass
This is really only needed in the registrar, but it's very convenient to have here.
isAssignableFrom(ServiceType) - Method in class org.apache.river.reggie.proxy.ServiceType
Returns true if this type is equal to type or if this type is equal to a superclass of type.
isInterface() - Method in class org.apache.river.reggie.proxy.ServiceType
 
isTrustedObject(Object, TrustVerifier.Context) - Method in class org.apache.river.reggie.proxy.ProxyVerifier
Returns true if the given object is a trusted proxy, or false otherwise.
Item - Class in org.apache.river.reggie.proxy
An Item contains the fields of a ServiceItem packaged up for transmission between client-side proxies and the registrar server.
Item(AtomicSerial.GetArg) - Constructor for class org.apache.river.reggie.proxy.Item
Failure is atomic, if any invariants aren't satisfied, construction fails before an instance can be created.
Item(ServiceItem) - Constructor for class org.apache.river.reggie.proxy.Item
Converts a ServiceItem to an Item.
Item(ServiceID, ServiceType, String, MarshalledWrapper, EntryRep[], Proxy) - Constructor for class org.apache.river.reggie.proxy.Item
 

L

lookup(Template) - Method in interface org.apache.river.reggie.proxy.Registrar
Returns the service object (i.e., just ServiceItem.service) from an item matching the template, or null if there is no match.
lookup(Template, int) - Method in interface org.apache.river.reggie.proxy.Registrar
Returns at most maxMatches items matching the template, plus the total number of items that match the template.
lookUp(Template, int) - Method in interface org.apache.river.reggie.proxy.Registrar
 
lookup(ServiceTemplate) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
lookup(ServiceTemplate, int) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
lookUp(ServiceTemplate, int) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 

M

matchEntry(EntryRep) - Method in class org.apache.river.reggie.proxy.EntryRep
Test if an entry matches a template.
Matches - Class in org.apache.river.reggie.proxy
A Matches contains the fields of a ServiceMatches packaged up for transmission between client-side proxies and the registrar server.
Matches(List<Item>, int) - Constructor for class org.apache.river.reggie.proxy.Matches
Simple constructor.
modifyAttributes(ServiceID, Uuid, EntryRep[], EntryRep[]) - Method in interface org.apache.river.reggie.proxy.Registrar
Modifies existing attribute sets of a registered service item.
modifyAttributes(Entry[], Entry[]) - Method in class org.apache.river.reggie.proxy.Registration
 
modifyLookupAttributes(Entry[], Entry[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 

N

name - Variable in class org.apache.river.reggie.proxy.EntryClass
Class name
notify(Template, int, RemoteEventListener, MarshalledObject, long) - Method in interface org.apache.river.reggie.proxy.Registrar
Registers for event notification.
notiFy(Template, int, RemoteEventListener, MarshalledInstance, long) - Method in interface org.apache.river.reggie.proxy.Registrar
Registers for event notification.
notify(ServiceTemplate, int, RemoteEventListener, MarshalledObject, long) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
notiFy(ServiceTemplate, int, RemoteEventListener, MarshalledInstance, long) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
numFields - Variable in class org.apache.river.reggie.proxy.EntryClass
Number of public fields

O

org.apache.river.reggie.proxy - package org.apache.river.reggie.proxy
 

P

ProxyVerifier - Class in org.apache.river.reggie.proxy
Trust verifier for smart proxies used by Reggie.
ProxyVerifier(Registrar, ServiceID) - Constructor for class org.apache.river.reggie.proxy.ProxyVerifier
Constructs proxy verifier which compares server references extracted from smart proxies with the given canonical server reference, which must implement both RemoteMethodControl and TrustEquivalence.

R

register(Item, long) - Method in interface org.apache.river.reggie.proxy.Registrar
Register a new service or re-register an existing service.
register(ServiceItem, long) - Method in class org.apache.river.reggie.proxy.RegistrarProxy
 
Registrar - Interface in org.apache.river.reggie.proxy
Registrar defines the private protocol between the various client-side proxies and the registrar server.
RegistrarEvent - Class in org.apache.river.reggie.proxy
Concrete implementation class for abstract ServiceEvent.
RegistrarEvent(AtomicSerial.GetArg) - Constructor for class org.apache.river.reggie.proxy.RegistrarEvent
 
RegistrarEvent(Object, long, long, MarshalledObject, ServiceID, int, Object) - Constructor for class org.apache.river.reggie.proxy.RegistrarEvent
Deprecated.
RegistrarEvent(Object, long, long, MarshalledInstance, ServiceID, int, Object) - Constructor for class org.apache.river.reggie.proxy.RegistrarEvent
Simple constructor.
RegistrarPermission - Class in org.apache.river.reggie.proxy
Permission that can be used to express the access control policy for an instance of the Reggie lookup service exported with a BasicJeriExporter.
RegistrarPermission(String) - Constructor for class org.apache.river.reggie.proxy.RegistrarPermission
Creates an instance with the specified target name.
RegistrarProxy - Class in org.apache.river.reggie.proxy
A RegistrarProxy is a proxy for a registrar.
Registration - Class in org.apache.river.reggie.proxy
Implementation class for the ServiceRegistration interface.
removeLookupGroups(String[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
removeLookupLocators(LookupLocator[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
removeMemberGroups(String[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
renewEventLease(long, Uuid, long) - Method in interface org.apache.river.reggie.proxy.Registrar
Renews an event lease.
renewLeases(Object[], Uuid[], long[]) - Method in interface org.apache.river.reggie.proxy.Registrar
Renews service and event leases from a LeaseMap.
RenewResults - Class in org.apache.river.reggie.proxy
 
RenewResults(long[], Exception[]) - Constructor for class org.apache.river.reggie.proxy.RenewResults
Simple constructor
RenewResults(AtomicSerial.GetArg) - Constructor for class org.apache.river.reggie.proxy.RenewResults
 
renewServiceLease(ServiceID, Uuid, long) - Method in interface org.apache.river.reggie.proxy.Registrar
Renews a service lease.
replacement - Variable in class org.apache.river.reggie.proxy.ServiceType
An instance containing only name, no supertype info.

S

service - Variable in class org.apache.river.reggie.proxy.Item
ServiceItem.service as a MarshalledWrapper.
serviceID() - Method in class org.apache.river.reggie.proxy.Template
 
ServiceLease - Class in org.apache.river.reggie.proxy
A ServiceLease is a proxy for a service registration lease at a registrar.
serviceType - Variable in class org.apache.river.reggie.proxy.Item
The Class of ServiceItem.service converted to ServiceType.
ServiceType - Class in org.apache.river.reggie.proxy
A ServiceType is a descriptor for a class, packaged up for transmission between client-side proxies and the registrar server.
ServiceType(Class, ServiceType, ServiceType[]) - Constructor for class org.apache.river.reggie.proxy.ServiceType
Should only be called by ClassMapper
serviceTypeAtIndex(int) - Method in class org.apache.river.reggie.proxy.Template
 
ServiceTypeBase - Class in org.apache.river.reggie.proxy
A ServiceType annotated with a codebase.
ServiceTypeBase(ServiceType, String) - Constructor for class org.apache.river.reggie.proxy.ServiceTypeBase
Simple constructor
ServiceTypeBase(AtomicSerial.GetArg) - Constructor for class org.apache.river.reggie.proxy.ServiceTypeBase
 
serviceTypes() - Method in class org.apache.river.reggie.proxy.Template
 
serviceTypesLength() - Method in class org.apache.river.reggie.proxy.Template
 
setAttributes(ServiceID, Uuid, EntryRep[]) - Method in interface org.apache.river.reggie.proxy.Registrar
Deletes all of the service item's existing attributes, and replaces them with the specified attribute sets.
setAttributes(Entry[]) - Method in class org.apache.river.reggie.proxy.Registration
 
setAttributeSets(EntryRep[]) - Method in class org.apache.river.reggie.proxy.Item
 
setCodebase(Class) - Method in class org.apache.river.reggie.proxy.EntryClassBase
Sets the codebase to the codebase of the given class.
setCodebase(Class) - Method in class org.apache.river.reggie.proxy.ServiceTypeBase
Sets the codebase to the codebase of the given class.
setLookupGroups(String[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
setLookupLocators(LookupLocator[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
setMemberGroups(String[]) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
setNumInstances(int) - Method in class org.apache.river.reggie.proxy.EntryClass
Set the number of instances of this class
setNumTemplates(int) - Method in class org.apache.river.reggie.proxy.EntryClass
Set the number of templates of this class
setServiceID(ServiceID) - Method in class org.apache.river.reggie.proxy.Item
 
setUnicastPort(int) - Method in class org.apache.river.reggie.proxy.AdminProxy
 
superclass - Variable in class org.apache.river.reggie.proxy.EntryClass
Descriptor for the superclass
superclass - Variable in class org.apache.river.reggie.proxy.ServiceType
Descriptor for the superclass.

T

Template - Class in org.apache.river.reggie.proxy
A Template contains the fields of a ServiceTemplate packaged up for transmission between client-side proxies and the registrar server.
Template(ServiceTemplate) - Constructor for class org.apache.river.reggie.proxy.Template
Converts a ServiceTemplate to a Template.
toClass(String) - Method in class org.apache.river.reggie.proxy.EntryClass
 
toClass(EntryClassBase[]) - Static method in class org.apache.river.reggie.proxy.EntryClassBase
Converts an array of EntryClassBase to an array of Class.
toClass(String) - Method in class org.apache.river.reggie.proxy.ServiceType
Converts this descriptor to a Class instance, loading from codebase
toClass(ServiceTypeBase[]) - Static method in class org.apache.river.reggie.proxy.ServiceTypeBase
Converts an array of ServiceTypeBase to an array of Class.
toEntry(EntryRep[]) - Static method in class org.apache.river.reggie.proxy.EntryRep
Converts an array of EntryRep to an array of Entry.
toEntryRep(Entry[], boolean) - Static method in class org.apache.river.reggie.proxy.EntryRep
Converts an array of Entry to an array of EntryRep.
toServiceItem(List) - Static method in class org.apache.river.reggie.proxy.Item
Converts an ArrayList of Item to an array of ServiceItem.
toString() - Method in class org.apache.river.reggie.proxy.AdminProxy
Returns a string created from the proxy class name, the registrar's service ID, and the result of the underlying proxy's toString method.
toString() - Method in class org.apache.river.reggie.proxy.EntryClass
 
toString() - Method in class org.apache.river.reggie.proxy.RegistrarProxy
Returns a string created from the proxy class name, the registrar's service ID, and the result of the underlying proxy's toString method.
toString() - Method in class org.apache.river.reggie.proxy.Registration
Returns a string created from the proxy class name and the result of calling toString on the contained lease.
toString() - Method in class org.apache.river.reggie.proxy.ServiceType
 
type - Variable in class org.apache.river.reggie.proxy.ServiceTypeBase
The ServiceType.

U

Util - Class in org.apache.river.reggie.proxy
Miscellaneous common utility methods.
Util() - Constructor for class org.apache.river.reggie.proxy.Util
 
A C D E F G H I L M N O P R S T U 
Skip navigation links
Copyright ©, multiple authors.

Copyright © 2016–2018. All rights reserved.