Skip to content

easy way to wrap js object to java object

License

Notifications You must be signed in to change notification settings

node-modules/js-to-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

js-to-java

NPM version CI Test coverage npm download

Easy way to wrap js object to java object.

In hessian.js, we need to write java classname with js object so make it encode as the write class.

Install

NPM

npm install js-to-java

Usage

Example

var java = require('js-to-java');

// Java: com.java.Object o = new com.java.Object();
java('com.java.Object', { foo: 'bar' });
// => {$class: 'com.java.Object', $: { foo: 'bar' }}

// Java: Boolean r;
java.Boolean(true);
// => {$class: 'java.lang.Boolean', $: true}

// Java: short[] shorts = new short[] {1, 2, 3};
java.array('short', [1, 2, 3]);
// => {$class: '[short', $: [1, 2, 3]}

// Java: int[] ints = new int[] {1, 2, 3};
java.array('int', [1, 2, 3]);
// same to the next example
java.array.int([1, 2, 3]);
// => {$class: '[int', $: [1, 2, 3]}

API

Type Mapping

  Boolean: 'java.lang.Boolean',
  boolean: 'boolean',
  Integer: 'java.lang.Integer',
  int: 'int',
  short: 'short',
  Short: 'java.lang.Short',
  byte: 'byte',
  Byte: 'java.lang.Byte',
  long: 'long',
  Long: 'java.lang.Long',
  double: 'double',
  Double: 'java.lang.Double',
  float: 'float',
  Float: 'java.lang.Float',
  String: 'java.lang.String',
  char: 'char',
  chars: 'char[]',
  Character: 'java.lang.Character',
  List: 'java.util.List',
  Set: 'java.util.Set',
  Collection: 'java.util.Collection',
  Iterator: 'java.util.Iterator',
  Enumeration: 'java.util.Enumeration',
  HashMap: 'java.util.HashMap',
  Map: 'java.util.Map',
  Dictionary: 'java.util.Dictionary'

java.abstract(abstractClassname, classname, value)

abstract class

java.abstract('com.demo.Parent', 'com.demo.Child', { foo: 'bar' });
// => { $abstractClass: 'com.demo.Parent', $class: 'com.demo.Child', $: { foo: 'bar' } }

java[.combine](classname, value)

Custom combineFunction:

java.combine('com.test.Object', { foo: 'bar' });
java('com.test.Object', { foo: 'bar' });
// => { $class: 'com.test.Object', $: { foo: 'bar' } }

java.Class(classname)

java.Class('java.lang.String');
// => { $class: 'java.lang.Class', $: { name: 'java.lang.String' } }

java.Locale(locale, handle)

java.Locale('zh_CN', ['com.caucho.hessian.io.LocaleHandle']);
// => { $class: 'com.caucho.hessian.io.LocaleHandle', $: { value: 'zh_CN' } }

java.BigDecimal(decimal)

java.BigDecimal('100.06');
// Or java.BigDecimal({value: '100.06'});
// => { $class: 'java.math.BigDecimal', $: { value: '100.06' } }

java.enum(classname, value)

java.enum('hessian.demo.Color', 'RED');
  or
java.enum('hessian.demo.Color', {name: 'RED'});
// => { $class: 'hessian.demo.Color', $: { name: 'RED' } }

java.array(classname, values)

java.array('Boolean', [true, false]);
// => { $class: '[java.lang.Boolean' $: [true, false] }

Available built-in classes shortcuts:

  • java.array.Boolean(values)
  • java.array.boolean(values)
  • java.array.Integer(values)
  • java.array.int(values)
  • java.array.short(values)
  • java.array.Short(values)
  • java.array.byte(values)
  • java.array.Byte(values)
  • java.array.long(values)
  • java.array.Long(values)
  • java.array.double(values)
  • java.array.Double(values)
  • java.array.float(values)
  • java.array.Float(values)
  • java.array.String(values)
  • java.array.char(values)
  • java.array.chars(values)
  • java.array.Character(values)
  • java.array.List(values)
  • java.array.Set(values)
  • java.array.Iterator(values)
  • java.array.Enumeration(values)
  • java.array.HashMap(values)
  • java.array.Map(values)
  • java.array.Dictionary(values)

java.exception(err[, className])

default className is java.lang.Exception.

{
  '$class': `${className}`,
  '$': {
    detailMessage: {
      '$class': 'java.lang.String',
      '$': `${err.name}: ${err.message}`,
    },
    stackTrace: {
      '$class': '[java.lang.StackTraceElement',
      '$': stackTraceElements,
    },
  },
}

java.revert(obj)

Wrap java object back to js object reversely.

var data = {
  $class: 'xxxx',
  $: {
    foo: 'bar',
    bar: {
      $class: 'int',
      $: 3,
    },
  },
};
java.revert(data);
// => {foo: 'bar', bar: 3}

License

MIT

Contributors


dead-horse


coolme200


fengmk2


greenkeeperio-bot


shaoshuai0102


gxcsoccer


mytEcust


semantic-release-bot


zhaoleipeng

This project follows the git-contributor spec, auto updated at Tue Jul 11 2023 11:39:26 GMT+0800.