All Downloads are FREE. Search and download functionalities are using the official Maven repository.

clojure.genclass__init.class Maven / Gradle / Ivy

The newest version!
????1clojure/genclass__initjava/lang/Objectload()Vconst__0Lclojure/lang/Var;		clojure/lang/Var
getRawRoot()Ljava/lang/Object;

clojure/lang/IFnconst__1Lclojure/lang/AFn;	invoke&(Ljava/lang/Object;)Ljava/lang/Object;clojure/lang/RT
CURRENT_NS	deref 
!clojure/lang/Namespace#java.lang.reflect.Modifier%classForNameNonLoading%(Ljava/lang/String;)Ljava/lang/Class;'(
)importClass$(Ljava/lang/Class;)Ljava/lang/Class;+,
$-java.lang.reflect.Constructor/clojure.asm.ClassWriter1clojure.asm.ClassVisitor3clojure.asm.Opcodes5clojure.asm.Type7clojure.asm.commons.Method9$clojure.asm.commons.GeneratorAdapter;clojure.lang.IPersistentMap=const__2?	@	const__11B	Cclojure/lang/IPersistentMapEsetMeta (Lclojure/lang/IPersistentMap;)VGH
Iclojure/core$filter_methodsKM
LNbindRoot(Ljava/lang/Object;)VPQ
R	const__12T	U	const__15W	X clojure/core$non_private_methodsZ
[N	const__16]	^	const__19`	a$clojure/core$protected_final_methodsc
dN	const__20f	g	const__23i	jclojure/core$ctor_sigsl
mN	const__24o	p	const__27r	sclojure/core$escape_class_nameu
vN	const__28x	y	const__31{	|clojure/core$overload_name~
N	const__32?	?	const__37?	?clojure/core$find_field?
?N	const__38?	?	const__40?	?	const__41?	?java/lang/Integer?TYPELjava/lang/Class;??	??	const__42?	?java/lang/Byte?	??	const__43?	?[F?java/lang/String?java/lang/Class?forName?(
??	const__44?	?java/lang/Character?	??	const__45?	?[C?	const__46?	?java/lang/Boolean?	??	const__47?	?java/lang/Void?	??	const__48?	?[J?	const__49?	?[D?	const__50?	?java/lang/Float?	??	const__51?	?[Z?	const__52?	?[S?	const__53?	?[B?	const__54?	?java/lang/Double?	??	const__55?	?java/lang/Short?	??	const__56?	?java/lang/Long?	??	const__57?	?[I?
mapUniqueKeys2([Ljava/lang/Object;)Lclojure/lang/IPersistentMap;??
?	const__58?	?	const__62?	clojure/core$the_class
N	const__63		const__66		#clojure/core$valid_java_method_name
N	const__67		const__70	,clojure/core$validate_generate_class_options
N	const__71		const__74	clojure/core$generate_class
N	const__75 	!	const__80#	$clojure/core$gen_class&
'NsetMacro)
*	const__81,	-	const__85/	0clojure/core$asm_type2
3N	const__865	6	const__898	9clojure/core$generate_interface;
<N	const__90>	?	const__93A	Bclojure/core$gen_interfaceD
EN__init0clojure.coreHin-nsJvar8(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;LM
Nclojure/lang/SymbolPintern;(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;RS
QTclojure/lang/AFnVfilter-methodsXprivateZkeyword<(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;\]
^TRUELjava/lang/Boolean;`a	?barglistsdcfclojure/lang/IObjhtagjClasslmapn?
owithMeta2(Lclojure/lang/IPersistentMap;)Lclojure/lang/IObj;qrisinvalid-method?uclojure/lang/TuplewcreateF(Ljava/lang/Object;Ljava/lang/Object;)Lclojure/lang/IPersistentVector;yz
x{java/util/Arrays}asList%([Ljava/lang/Object;)Ljava/util/List;?
~?clojure/lang/PersistentList?0(Ljava/util/List;)Lclojure/lang/IPersistentList;y?
??line?valueOf(I)Ljava/lang/Integer;??
??column?file?clojure/genclass.clj?non-private-methods?4(Ljava/lang/Object;)Lclojure/lang/IPersistentVector;y?
x?protected-final-methods?	ctor-sigs?super?escape-class-name?
overload-name?mname?pclasses?
find-field?java.lang.reflect.Field?classForName?(
?f?prim->class?int?byte?floats?char?chars?boolean?void?longs?doubles?float?booleans?shorts?bytes?double?short?long?ints?	the-class?java.lang.Class?x?valid-java-method-name?s?String?validate-generate-class-options?keys?methods?generate-class?options-map?	gen-class?&?options?doc?;When compiling, generates compiled bytecode for a class with the
  given package-qualified :name (which, as all names in these
  parameters, can be a string or symbol), and writes the .class file
  to the *compile-path* directory.  When not compiling, does
  nothing. The gen-class construct contains no implementation, as the
  implementation will be dynamically sought by the generated class in
  functions in an implementing Clojure namespace. Given a generated
  class org.mydomain.MyClass with a method named mymethod, gen-class
  will generate an implementation that looks for a function named by 
  (str prefix mymethod) (default prefix: "-") in a
  Clojure namespace specified by :impl-ns
  (defaults to the current namespace). All inherited methods,
  generated methods, and init and main functions (see :methods, :init,
  and :main below) will be found similarly prefixed. By default, the
  static initializer for the generated class will attempt to load the
  Clojure support code for the class as a resource from the classpath,
  e.g. in the example case, ``org/mydomain/MyClass__init.class``. This
  behavior can be controlled by :load-impl-ns

  Note that methods with a maximum of 18 parameters are supported.

  In all subsequent sections taking types, the primitive types can be
  referred to by their Java names (int, float etc), and classes in the
  java.lang package can be used without a package qualifier. All other
  classes must be fully qualified.

  Options should be a set of key/value pairs, all except for :name are optional:

  :name aname

  The package-qualified name of the class to be generated

  :extends aclass

  Specifies the superclass, the non-private methods of which will be
  overridden by the class. If not provided, defaults to Object.

  :implements [interface ...]

  One or more interfaces, the methods of which will be implemented by the class.

  :init name

  If supplied, names a function that will be called with the arguments
  to the constructor. Must return [ [superclass-constructor-args] state] 
  If not supplied, the constructor args are passed directly to
  the superclass constructor and the state will be nil

  :constructors {[param-types] [super-param-types], ...}

  By default, constructors are created for the generated class which
  match the signature(s) of the constructors for the superclass. This
  parameter may be used to explicitly specify constructors, each entry
  providing a mapping from a constructor signature to a superclass
  constructor signature. When you supply this, you must supply an :init
  specifier. 

  :post-init name

  If supplied, names a function that will be called with the object as
  the first argument, followed by the arguments to the constructor.
  It will be called every time an object of this class is created,
  immediately after all the inherited constructors have completed.
  Its return value is ignored.

  :methods [ [name [param-types] return-type], ...]

  The generated class automatically defines all of the non-private
  methods of its superclasses/interfaces. This parameter can be used
  to specify the signatures of additional methods of the generated
  class. Static methods can be specified with ^{:static true} in the
  signature's metadata. Do not repeat superclass/interface signatures
  here.

  :main boolean

  If supplied and true, a static public main function will be generated. It will
  pass each string of the String[] argument as a separate argument to
  a function called (str prefix main).

  :factory name

  If supplied, a (set of) public static factory function(s) will be
  created with the given name, and the same signature(s) as the
  constructor(s).
  
  :state name

  If supplied, a public final instance field with the given name will be
  created. You must supply an :init function in order to provide a
  value for the state. Note that, though final, the state can be a ref
  or agent, supporting the creation of Java objects with transactional
  or asynchronous mutation semantics.

  :exposes {protected-field-name {:get name :set name}, ...}

  Since the implementations of the methods of the generated class
  occur in Clojure functions, they have no access to the inherited
  protected fields of the superclass. This parameter can be used to
  generate public getter/setter methods exposing the protected field(s)
  for use in the implementation.

  :exposes-methods {super-method-name exposed-name, ...}

  It is sometimes necessary to call the superclass' implementation of an
  overridden method.  Those methods may be exposed and referred in 
  the new method implementation by a local name.

  :prefix string

  Default: "-" Methods called e.g. Foo will be looked up in vars called
  prefixFoo in the implementing ns.

  :impl-ns name

  Default: the name of the current ns. Implementations of methods will be 
  looked up in this namespace.

  :load-impl-ns boolean

  Default: true. Causes the static initializer for the generated class
  to reference the load code for the implementing namespace. Should be
  true when implementing-ns is the default, false if you intend to
  load the code via some other method.?added?1.0?asm-type??Returns an asm Type object for c, which may be a primitive class
  (such as Integer/TYPE), any other class (such as Double), or a
  fully-qualified class name given as a string or symbol
  (such as 'java.lang.String)?generate-interface?name?extendsX(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lclojure/lang/IPersistentVector;y
x
gen-interface?When compiling, generates compiled bytecode for an interface with
  the given package-qualified :name (which, as all names in these
  parameters, can be a string or symbol), and writes the .class file
  to the *compile-path* directory.  When not compiling, does nothing.
 
  In all subsequent sections taking types, the primitive types can be
  referred to by their Java names (int, float etc), and classes in the
  java.lang package can be used without a package qualifier. All other
  classes must be fully qualified.
 
  Options should be a set of key/value pairs, all except for :name are
  optional:

  :name aname

  The package-qualified name of the class to be generated

  :extends [interface ...]

  One or more interfaces, which will be extended by this interface.

  :methods [ [name [param-types] return-type], ...]

  This parameter is used to specify the signatures of the methods of
  the generated interface.  Do not repeat superinterface signatures
  here.G

clojure.genclass__initgetClassLoader()Ljava/lang/ClassLoader;
?clojure/lang/CompilerpushNSandLoader(Ljava/lang/ClassLoader;)V

popThreadBindings
CodeLineNumberTable!3?BTW]`fiorx{??????????????????????? #,/58>A	?W?
??????"?$&?*?.??"?$0?*?.??"?$2?*?.??"?$4?*?.??"?$6?*?.??"?$8?*?.??"?$:?*?.??"?$?*?.?AY?D?F?JY?LY?O?S?VY?Y?F?JY?[Y?\?S?_Y?b?F?JY?dY?e?S?hY?k?F?JY?mY?n?S?qY?t?F?JY?vY?w?S?zY?}?F?JY?Y???S??Y???F?JY??Y???S??Y???F?JY"?Y??SY??SY??SY??SY??SY?????SY??SY??SY??SY	?????SY
??SY??SY??SY
??SY??SY?????SY??SY?????SY??SY??SY??SY?????SY??SY?????SY??SY?????SY??SY??SY??SY??SY??SY??SY ??SY!?????S???S??Y??F?JY?Y??S?Y?
?F?JY?Y?
?S?Y??F?JY?Y??S?Y??F?JY?Y??S?"Y?%?F?JY?'Y?(?S?"??+?"?.Y?1?F?JY?3Y?4?S?7Y?:?F?JY?




© 2015 - 2025 Weber Informatics LLC | Privacy Policy