Skip to content

Commit

Permalink
feat(array): class enum locale
Browse files Browse the repository at this point in the history
  • Loading branch information
tangyao committed Feb 3, 2015
1 parent afac982 commit 942ff86
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 3 deletions.
51 changes: 48 additions & 3 deletions index.js
Expand Up @@ -20,9 +20,12 @@ var combine = function (type, value) {
};

var combineArray = function (type, value) {
var values = [];
for (var i = 0, len = value.length; i < len; i++) {
values.push(combine(type, value[i]));
var values = null;
if (value) {
values = [];
for (var i = 0, len = value.length; i < len; i++) {
values.push(combine(type, value[i]));
}
}
return {
$class: '[' + (type.name || type),
Expand Down Expand Up @@ -188,6 +191,20 @@ exports.enum = function (className, name) {
return combine(className, value);
};

exports.array.enum = function (className, names) {
var values = null;
if (names) {
values = [];
for (var i = 0, len = names.length; i < len; i++) {
values.push(exports.enum(className, names[i]));
}
}
return {
$class: '[' + className,
$: values
};
};

/**
* java.Class("java.lang.String");
* =>
Expand All @@ -203,6 +220,20 @@ exports.Class = function (name) {
return combine('java.lang.Class', value);
};

exports.array.Class = function (names) {
var values = null;
if (names) {
values = [];
for (var i = 0, len = names.length; i < len; i++) {
values.push(exports.Class(names[i]));
}
}
return {
$class: '[java.lang.Class',
$: values
};
};

/**
* // for java.util.Locale
* java.Locale("zh_CN");
Expand All @@ -218,3 +249,17 @@ exports.Locale = function (locale, handle) {
} : null;
return combine(handle || 'com.caucho.hessian.io.LocaleHandle', value);
};

exports.array.Locale = function (locales, handle) {
var values = null;
if (locales) {
values = [];
for (var i = 0, len = locales.length; i < len; i++) {
values.push(exports.Locale(locales[i], handle));
}
}
return {
$class: '[' + (handle || 'com.caucho.hessian.io.LocaleHandle'),
$: values
};
};
45 changes: 45 additions & 0 deletions test/index.test.js
Expand Up @@ -116,6 +116,21 @@ describe('js to java', function () {
$class: 'xxx',
$: null
});
java.array.enum('com.xxx').should.eql({
$class: '[com.xxx',
$: null
});
java.array.enum('com.xxx', ['aaa']).should.eql({
$class: '[com.xxx',
$: [
{
$class: 'com.xxx',
$: {
name: 'aaa'
}
}
]
});
});

it('should create Class', function () {
Expand All @@ -127,13 +142,43 @@ describe('js to java', function () {
$class: 'java.lang.Class',
$: null
});
java.array.Class().should.eql({
$class: '[java.lang.Class',
$: null
});
java.array.Class(['aaa']).should.eql({
$class: '[java.lang.Class',
$: [
{
$class: 'java.lang.Class',
$: {
name: 'aaa'
}
}
]
});
});

it('should create Locale with out input `handle`', function () {
java.Locale('zh_CN').should.eql({
$class: 'com.caucho.hessian.io.LocaleHandle',
$: {value: 'zh_CN'}
});
java.array.Locale().should.eql({
$class: '[com.caucho.hessian.io.LocaleHandle',
$: null
});
java.array.Locale(['zh_CN']).should.eql({
$class: '[com.caucho.hessian.io.LocaleHandle',
$: [
{
$class: 'com.caucho.hessian.io.LocaleHandle',
$: {
value: 'zh_CN'
}
}
]
});
});

it('should create Locale with input `handle`', function () {
Expand Down

0 comments on commit 942ff86

Please sign in to comment.