Files
gomobile-tvos-fork/bind/testdata/testpkg/javapkg/classes.go
Elias Naur f16143114e bind, cmd/gobind/test: remove GOOS build tags from test packages
The gobind command is about to get more powerful and able to generate
complete and standalone bindings. Platform specific build tags based
on GOOS or GOARCH are now meaningless to generate bindings from, so
remove them from the test packages.

The tags mattered to the reverse bound packages, since the go tool can't
build them without the Go wrappers for the imported Java packages.
Before this CL, the `android` tag was used to fool the go tool since
the host GOOS is unlikely to be android.

A fix is to check in the generated Go wrappers, but since the
packages are for testing we don't want that. Instead, move the test
packages to the testdata directory so the go tool ignores them.

Change-Id: I57178e930a400f690ebd7a65758bed894eeb10b0
Reviewed-on: https://go-review.googlesource.com/99315
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
2018-03-14 22:25:02 +00:00

203 lines
3.7 KiB
Go

// 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)
}