blob: 3f95c4874047c1f721ebd8576d8344ad97d61553 [file] [log] [blame]
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package javapkg
import (
"Java/java/beans"
"Java/java/io"
"Java/java/io/IOException"
"Java/java/lang"
"Java/java/lang/Character"
"Java/java/lang/Integer"
"Java/java/lang/Object"
"Java/java/lang/Runnable"
"Java/java/net"
"Java/java/nio"
"Java/java/util"
"Java/java/util/concurrent"
gopkg "Java/javapkg"
xnet "Java/javax/net"
)
const (
ToStringPrefix = "Go toString: "
IOExceptionMessage = "GoInputStream IOException"
)
type GoRunnable struct {
lang.Object
lang.Runnable
this lang.Runnable
Field string
}
func (r *GoRunnable) ToString(this gopkg.GoRunnable) string {
return ToStringPrefix
}
func (r *GoRunnable) Run(this gopkg.GoRunnable) {
}
func (r *GoRunnable) GetThis(this gopkg.GoRunnable) lang.Runnable {
return this
}
type GoInputStream struct {
io.InputStream
}
func (_ *GoInputStream) Read() (int32, error) {
return 0, IOException.New(IOExceptionMessage)
}
func NewGoInputStream() *GoInputStream {
return new(GoInputStream)
}
type GoFuture struct {
concurrent.Future
}
func (_ *GoFuture) Cancel(_ bool) bool {
return false
}
func (_ *GoFuture) Get() (lang.Object, error) {
return nil, nil
}
// Use a trailing underscore to override multiple overloaded methods.
func (_ *GoFuture) Get_(_ int64, _ concurrent.TimeUnit) (lang.Object, error) {
return nil, nil
}
func (_ *GoFuture) IsCancelled() bool {
return false
}
func (_ *GoFuture) IsDone() bool {
return false
}
type GoObject struct {
lang.Object
this lang.Object
}
func (o *GoObject) ToString(this gopkg.GoObject) string {
o.this = this
return ToStringPrefix + this.Super().ToString()
}
func (_ *GoObject) HashCode() int32 {
return 42
}
func RunRunnable(r lang.Runnable) {
r.Run()
}
func RunnableRoundtrip(r lang.Runnable) lang.Runnable {
return r
}
// Test constructing and returning Go instances of GoObject and GoRunnable
// outside a constructor
func ConstructGoRunnable() *GoRunnable {
return new(GoRunnable)
}
func ConstructGoObject() *GoObject {
return new(GoObject)
}
// java.beans.PropertyChangeEvent is a class a with no default constructors.
type GoPCE struct {
beans.PropertyChangeEvent
}
func NewGoPCE(_ lang.Object, _ string, _ lang.Object, _ lang.Object) *GoPCE {
return new(GoPCE)
}
// java.util.ArrayList is a class with multiple constructors
type GoArrayList struct {
util.ArrayList
}
func NewGoArrayList() *GoArrayList {
return new(GoArrayList)
}
func NewGoArrayListWithCap(_ int32) *GoArrayList {
return new(GoArrayList)
}
func UnwrapGoArrayList(l gopkg.GoArrayList) {
_ = l.Unwrap().(*GoArrayList)
}
func CallSubset(s Character.Subset) {
s.ToString()
}
type GoSubset struct {
Character.Subset
}
func NewGoSubset(_ string) *GoSubset {
return new(GoSubset)
}
func NewJavaObject() lang.Object {
return Object.New()
}
func NewJavaInteger() lang.Integer {
i, _ := Integer.New(int32(42))
return i
}
type NoargConstructor struct {
util.BitSet // An otherwise unused class with a no-arg constructor
}
type GoRand struct {
util.Random
}
func (_ *GoRand) Next(this gopkg.GoRand, i int32) int32 {
return this.Super().Next(i)
}
type I interface{}
func CastInterface(intf I) lang.Runnable {
var r lang.Runnable = Runnable.Cast(intf)
r.Run()
return r
}
func CastRunnable(o lang.Object) lang.Runnable {
defer func() {
recover() // swallow the panic
}()
var r lang.Runnable = Runnable.Cast(o)
r.Run()
return r
}
// Test that extending classes from Java packages
// with the same last component (in this case "net")
// works.
func NameClashingPackages(_ net.Socket, _ xnet.SocketFactory) {
}
func testReferenceToUnsupportedParameters() {
var ib nio.IntBuffer
ib.Put(nil)
}